1. netserver
root@zanget:win# ifconfig eth0 Link encap:以太网 硬件地址 00:0c:29:da:b1:76 inet 地址:10.22.5.225 广播:10.22.5.255 掩码:255.255.255.0 inet6 地址: fe80::20c:29ff:feda:b176/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1 接收数据包:6111 错误:0 丢弃:0 过载:0 帧数:0 发送数据包:838 错误:0 丢弃:0 过载:0 载波:0 碰撞:0 发送队列长度:1000 接收字节:417090 (417.0 KB) 发送字节:97962 (97.9 KB) 中断:18 基本地址:0x2024
eth0:1 Link encap:以太网 硬件地址 00:0c:29:da:b1:76 inet 地址:192.168.1.6 广播:192.168.1.255 掩码:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1 中断:18 基本地址:0x2024 |
Netperf–使用方法及選項
Netperf 的程式包含兩個部份,netserver是server端行程,netperf則是client端行程。因此在執行netperf前要先確定netserver是否在另一端執行:
root@zanget:Project# netserver -d -L 192.168.1.6 -4 set_up_server called with host '192.168.1.6' port '12865' remfam 2 getaddrinfo returned the following for host '192.168.1.6' port '12865' family AF_INET cannonical name: '(nil)' flags: 1 family: AF_INET: socktype: SOCK_STREAM protocol IPPROTO_TCP addrlen 16 sa_family: AF_INET sadata: 50 65 192 168 1 6 Starting netserver at port 12865 Starting netserver at hostname 192.168.1.6 port 12865 and family AF_INET |
虽然打印了较多(错误)信息,但是服务依然成功开启:
root@zanget:win# netstat -an | grep 12865 tcp 0 0 192.168.1.6:12865 0.0.0.0:* LISTEN |
netperf
參數說明:
-H remote_host
-t testname (TCP_STREAM, TCP_RR, UDP_STREAD…)
-m 設定訊息的大小
-l 設定測試的時間, 單位:秒 (預設為10秒)
2. 测试TCP
Bulk data transfer mode可用來量測主機之間的可用頻寛。下面是我在板子上执行TCP:
/netperf/bin # ./netperf -H 192.168.1.6 TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.1.6 (192.168.1.6) port 0 AF_INET Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^6bits/sec
87380 16384 16384 10.11 4.27 |
3. UDP测试
除了TCP外,我們也可以使用UDP。-t參數可以用來指定資料流的種類,下面是我在板子上执行UDP:
/netperf/bin # ./netperf -H 192.168.1.6 -t UDP_STREAM -- -m 1024 UDP UNIDIRECTIONAL SEND TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.1.6 (192.168.1.6) port 0 AF_INET enable_enobufs failed: getprotobyname Socket Message Elapsed Messages Size Size Time Okay Errors Throughput bytes bytes secs # # 10^6bits/sec
105472 1024 10.00 4996 0 4.09 112640 10.00 4996 4.09 |
Netpref預設的UDP資料流 (stream) 大小是9216 byte。在傳送時很容易引起緩衝區溢位使得封包在接收端遺失;假如有太多的封包遺失,Netpref量測到的的頻寛會較實際的小很多。所以在這裡我們使用-m參數重設訊息的大小,--符號是要告訴Netpref將-m這個參數加入UDP_STREAM這個模組中。
4. 拷贝文件测试
/home # date && cp iso /netperf/share/ && date Thu Jan 1 02:28:11 UTC 1970 Thu Jan 1 02:43:20 UTC 1970
/home # ls -al total 715432 drwxr-xr-x 3 0 0 4096 Dec 7 2010 . drwxr-xr-x 20 0 0 4096 Dec 6 2010 .. -rwxr-xr-x 1 0 0 733007872 Dec 7 2010 iso |
5. 速度计算
TCP
4.27 10^6bits/sec = 4.27 * 1000000(0^6) / 8 / 1024 = 521.240234375 KB/s
UDP
4.09 10^6bits/sec = 4.09 * 1000000(0^6) / 8 / 1024 = 499.267578125 KB/s
文件拷贝
02:43:20 - 02:28:11 = 00:15:09 = 15*60+9=909s
733007872 bytes = 715828KB
715828KB / 909s =787.48954895489548954895489548955KB/S