RTEMS 的TCP网络吞吐量测试
本测试是指 S3C2440,FCLK为 200MHZ,MMU,cache 都打开,网卡是 CS8900CS8900 是 10M 网卡,理论传输率为 1.25MHZ,实际上看看在RTEMS上的表现如何rtems-4.10.2network-demos-4.10.2/ttcpttcp 是一个测试TCP吞吐量的程序,其原生程序为 BSD上的程序,可以在linux上直接编译,能
·
本测试是指 S3C2440,FCLK为 200MHZ,MMU,cache 都打开,网卡是 CS8900
CS8900 是 10M 网卡,理论传输率为 1.25MHZ,实际上看看在RTEMS上的表现如何
rtems-4.10.2
network-demos-4.10.2/ttcp
ttcp 是一个测试TCP吞吐量的程序,其原生程序为 BSD上的程序,可以在linux上直接
编译,能来到这个测试,表面之前的netdemo是已经跑通了, networkconfig.h 是准备好的。
rtems完全不用修改直接就使用了bsd上的程序,可见poxic做的兼容性很高。
直接编译就行了。有2个程序,一个是当前目录的 ttcp ,是linux直接运行的程序,另外一个
是放到开发板上运行的。
测试方法是:
1、运行开发板上的程序
CS8900 Rev 10, 3.3V, EEPROM present.
>>> ttcp -r
网卡启动完毕后输入 -r 表示开发板是作为接收程序来使用。
2、linux上运行刚才的 ttcp,我的是virtualbox上运行(和window采用网桥相连)和开发板能
互相ping通的。用 -t 参数表示发送模式,目标ip,最后 file 是我们需要发送的文件,当前
目前的文件就行了,我用了一个 130多M 的文件作为测试。
[root@localhost ttcp]# ./ttcp -t 192.168.0.191 <file
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001 tcp -> 192.168.0.191
ttcp-t: socket
ttcp-t: connect
3、如果安全原来的程序,收到内容是从 stdout中打印出来的
if (trans) {
while((cnt=read(0,buf,buflen)) > 0 &&
Nwrite(fd,buf,cnt) == cnt)
nbytes += cnt;
} else {
//while((cnt=Nread(fd,buf,buflen)) > 0 &&
// write(1,buf,cnt) == cnt)
while((cnt=Nread(fd,buf,buflen)) > 0)
nbytes += cnt;
}
这是 ttcp.c 里面的 443行附件的程序,可以看出,Nread 之后。将数据 write 到 1 (也就是 stdout)上面了。
由于串口输出很慢,所以这样的话得到的结果就是很慢了,不能反映真正收发数据的速率。所以我将它屏蔽了。
收到数据就计算数据大小,不输出。
4、发送 135M 数据 976.25 KB/sec 接近 1MB byte的速度。这个速度已经接近理论的 1.25M 了,可见性能挺不错。
我是连到公司的lan中,正常运行有 200台电脑左右还有各种用途的服务器。但是占用cpu比较多的时间,具体原因
还在分析中。
CS8900 Rev 10, 3.3V, EEPROM present.
>>> ttcp -r
ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001 tcp
ttcp-r: socket
ttcp-r: accept from 192.168.0.163
ttcp-r: 135749612 bytes in 135.79 real seconds = 976.25 KB/sec +++
ttcp-r: 78682 I/O calls, msec/call = 1.77, calls/sec = 579.43
ttcp-r: 0.0user 135.7sys 2:15real 100% 0i+0d 0maxrss 0+0pf 0+0csw
-------------------------------------------------------------------------------
CPU USAGE BY THREAD
------------+----------------------------------------+---------------+---------
ID | NAME | SECONDS | PERCENT
------------+----------------------------------------+---------------+---------
0x09010001 | IDLE | 11.267000 | 7.912
0x0A010001 | UI1 | 0.000000 | 0.000
0x0A010002 | ntwk | 36.260000 | 25.465
0x0A010003 | CSr0 | 38.781000 | 27.236
0x0A010004 | CSt0 | 7.977000 | 5.602
0x0A010005 | TTCP | 48.103000 | 33.783
------------+----------------------------------------+---------------+---------
TIME SINCE LAST CPU USAGE RESET IN SECONDS: 142.388000
-------------------------------------------------------------------------------
************ MBUF STATISTICS ************
mbufs:2048 clusters: 128 free: 98
drops: 0 waits: 0 drains: 0
free:2017 data:31 header:0 socket:0
pcb:0 rtable:0 htable:0 atable:0
soname:0 soopts:0 ftable:0 rights:0
ifaddr:0 control:0 oobdata:0
************ INTERFACE STATISTICS ************
***** eth0 *****
Ethernet Address: 00:04:9F:00:5B:21
Address:192.168.0.191 Broadcast Address:192.168.3.255 Net mask:255.255.252.0
Flags: Up Broadcast Running Simplex
Send queue limit:50 length:0 Dropped:0
Network Driver Stats for CS8900 :
rx ready len - 28 rx loaded len - 2
rx packets - 99675 tx packets - 44290
rx bytes - 142689480 tx bytes - 2923034
rx interrupts - 99678 tx interrupts - 44290
rx dropped - 0 rx no mbuf - 0
rx no custers - 0 rx oversize errors - 0
rx crc errors - 0 rx runt errors - 0
rx missed errors - 445 tx ok - 44290
tx collisions - 487 tx bid errors - 0
tx wait for rdy4tx - 0 tx rdy4tx - 0
tx underrun errors - 0 tx dropped - 0
tx resends - 0 int swint req - 4
int swint res - 4 int lockup - 0
interrupts - 99860
***** lo0 *****
Address:127.0.0.1 Net mask:255.0.0.0
Flags: Up Loopback Running Multicast
Send queue limit:50 length:0 Dropped:0
************ IP Statistics ************
total packets received 95996
packets rcvd for unreachable dest 1219
datagrams delivered to upper level 94777
total ip packets generated here 44286
************ TCP Statistics ************
connections accepted 1
connections established 1
conn. closed (includes drops) 1
segs where we tried to get rtt 2
times we succeeded 2
delayed acks sent 519
total packets sent 44280
ack-only packets sent 975
window update-only packets sent 43304
control (SYN|FIN|RST) packets sent 1
total packets received 93836
packets received in sequence 93373
bytes received in sequence 135093292
out-of-order packets received 454
out-of-order bytes received 656320
rcvd ack packets 2
bytes acked by rcvd acks 2
times hdr predict ok for data pkts 93371
主机发送的log
[root@localhost ttcp]# cp /media/sf_share/file .
[root@localhost ttcp]# ./ttcp -t 192.168.0.191 <file
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001 tcp -> 192.168.0.191
ttcp-t: socket
ttcp-t: connect
ttcp-t: 135749612 bytes in 136.23 real seconds = 973.09 KB/sec +++
ttcp-t: 16571 I/O calls, msec/call = 8.42, calls/sec = 121.64
ttcp-t: 0.0user 0.3sys 2:16real 0% 0i+0d 232maxrss 0+3pf 9364+4csw
[root@localhost ttcp]#
CS8900 是 10M 网卡,理论传输率为 1.25MHZ,实际上看看在RTEMS上的表现如何
rtems-4.10.2
network-demos-4.10.2/ttcp
ttcp 是一个测试TCP吞吐量的程序,其原生程序为 BSD上的程序,可以在linux上直接
编译,能来到这个测试,表面之前的netdemo是已经跑通了, networkconfig.h 是准备好的。
rtems完全不用修改直接就使用了bsd上的程序,可见poxic做的兼容性很高。
直接编译就行了。有2个程序,一个是当前目录的 ttcp ,是linux直接运行的程序,另外一个
是放到开发板上运行的。
测试方法是:
1、运行开发板上的程序
CS8900 Rev 10, 3.3V, EEPROM present.
>>> ttcp -r
网卡启动完毕后输入 -r 表示开发板是作为接收程序来使用。
2、linux上运行刚才的 ttcp,我的是virtualbox上运行(和window采用网桥相连)和开发板能
互相ping通的。用 -t 参数表示发送模式,目标ip,最后 file 是我们需要发送的文件,当前
目前的文件就行了,我用了一个 130多M 的文件作为测试。
[root@localhost ttcp]# ./ttcp -t 192.168.0.191 <file
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001 tcp -> 192.168.0.191
ttcp-t: socket
ttcp-t: connect
3、如果安全原来的程序,收到内容是从 stdout中打印出来的
if (trans) {
while((cnt=read(0,buf,buflen)) > 0 &&
Nwrite(fd,buf,cnt) == cnt)
nbytes += cnt;
} else {
//while((cnt=Nread(fd,buf,buflen)) > 0 &&
// write(1,buf,cnt) == cnt)
while((cnt=Nread(fd,buf,buflen)) > 0)
nbytes += cnt;
}
这是 ttcp.c 里面的 443行附件的程序,可以看出,Nread 之后。将数据 write 到 1 (也就是 stdout)上面了。
由于串口输出很慢,所以这样的话得到的结果就是很慢了,不能反映真正收发数据的速率。所以我将它屏蔽了。
收到数据就计算数据大小,不输出。
4、发送 135M 数据 976.25 KB/sec 接近 1MB byte的速度。这个速度已经接近理论的 1.25M 了,可见性能挺不错。
我是连到公司的lan中,正常运行有 200台电脑左右还有各种用途的服务器。但是占用cpu比较多的时间,具体原因
还在分析中。
CS8900 Rev 10, 3.3V, EEPROM present.
>>> ttcp -r
ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001 tcp
ttcp-r: socket
ttcp-r: accept from 192.168.0.163
ttcp-r: 135749612 bytes in 135.79 real seconds = 976.25 KB/sec +++
ttcp-r: 78682 I/O calls, msec/call = 1.77, calls/sec = 579.43
ttcp-r: 0.0user 135.7sys 2:15real 100% 0i+0d 0maxrss 0+0pf 0+0csw
-------------------------------------------------------------------------------
CPU USAGE BY THREAD
------------+----------------------------------------+---------------+---------
ID | NAME | SECONDS | PERCENT
------------+----------------------------------------+---------------+---------
0x09010001 | IDLE | 11.267000 | 7.912
0x0A010001 | UI1 | 0.000000 | 0.000
0x0A010002 | ntwk | 36.260000 | 25.465
0x0A010003 | CSr0 | 38.781000 | 27.236
0x0A010004 | CSt0 | 7.977000 | 5.602
0x0A010005 | TTCP | 48.103000 | 33.783
------------+----------------------------------------+---------------+---------
TIME SINCE LAST CPU USAGE RESET IN SECONDS: 142.388000
-------------------------------------------------------------------------------
************ MBUF STATISTICS ************
mbufs:2048 clusters: 128 free: 98
drops: 0 waits: 0 drains: 0
free:2017 data:31 header:0 socket:0
pcb:0 rtable:0 htable:0 atable:0
soname:0 soopts:0 ftable:0 rights:0
ifaddr:0 control:0 oobdata:0
************ INTERFACE STATISTICS ************
***** eth0 *****
Ethernet Address: 00:04:9F:00:5B:21
Address:192.168.0.191 Broadcast Address:192.168.3.255 Net mask:255.255.252.0
Flags: Up Broadcast Running Simplex
Send queue limit:50 length:0 Dropped:0
Network Driver Stats for CS8900 :
rx ready len - 28 rx loaded len - 2
rx packets - 99675 tx packets - 44290
rx bytes - 142689480 tx bytes - 2923034
rx interrupts - 99678 tx interrupts - 44290
rx dropped - 0 rx no mbuf - 0
rx no custers - 0 rx oversize errors - 0
rx crc errors - 0 rx runt errors - 0
rx missed errors - 445 tx ok - 44290
tx collisions - 487 tx bid errors - 0
tx wait for rdy4tx - 0 tx rdy4tx - 0
tx underrun errors - 0 tx dropped - 0
tx resends - 0 int swint req - 4
int swint res - 4 int lockup - 0
interrupts - 99860
***** lo0 *****
Address:127.0.0.1 Net mask:255.0.0.0
Flags: Up Loopback Running Multicast
Send queue limit:50 length:0 Dropped:0
************ IP Statistics ************
total packets received 95996
packets rcvd for unreachable dest 1219
datagrams delivered to upper level 94777
total ip packets generated here 44286
************ TCP Statistics ************
connections accepted 1
connections established 1
conn. closed (includes drops) 1
segs where we tried to get rtt 2
times we succeeded 2
delayed acks sent 519
total packets sent 44280
ack-only packets sent 975
window update-only packets sent 43304
control (SYN|FIN|RST) packets sent 1
total packets received 93836
packets received in sequence 93373
bytes received in sequence 135093292
out-of-order packets received 454
out-of-order bytes received 656320
rcvd ack packets 2
bytes acked by rcvd acks 2
times hdr predict ok for data pkts 93371
主机发送的log
[root@localhost ttcp]# cp /media/sf_share/file .
[root@localhost ttcp]# ./ttcp -t 192.168.0.191 <file
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001 tcp -> 192.168.0.191
ttcp-t: socket
ttcp-t: connect
ttcp-t: 135749612 bytes in 136.23 real seconds = 973.09 KB/sec +++
ttcp-t: 16571 I/O calls, msec/call = 8.42, calls/sec = 121.64
ttcp-t: 0.0user 0.3sys 2:16real 0% 0i+0d 232maxrss 0+3pf 9364+4csw
[root@localhost ttcp]#
更多推荐
已为社区贡献3条内容
所有评论(0)