本测试是指 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]# 

Logo

更多推荐