nttcp – new test TCP program
透過 nttcp 可以針對網路的 TCP, UDP 以及 UDP multicast connection 來進行效能檢視.
測試環境 Ubuntu 16.04 x86_64 (虛擬機)
- 接收端 IP : 192.168.95.151
- 傳送端 IP : 192.168.95.159
在 接收端 與 傳送端 進行 nttcp 安裝.
root@ubuntu:~# apt install nttcp
接收端 IP : 192.168.95.151
root@ubuntu:~# nttcp -i
使用參數 :
- -i : nttcp 可以透過 inetd 的方式來啟動,或是直接使用參數 -i 來啟動.
傳送端 IP : 192.168.95.159
使用參數 :
- -t : 當傳送端.
- -T : 顯示傳輸結果的標題.
預設會傳送 4KByte x 2048 buffers (總共 8 MByte) 資料到遠端.root@ubuntu:~# nttcp -t -T 192.168.95.151 Bytes Real s CPU s Real-MBit/s CPU-MBit/s Calls Real-C/s CPU-C/s l 8388608 0.20 0.18 331.9723 380.9908 2048 10130.99 11626.9 1 8388608 0.20 0.04 332.6206 1825.2969 2412 11954.92 65604.1
主要測試結果可以看 Real-MBit/s 331.9723 (l-Local 自己) , 332.6206 (1-Remote 遠端)
Real-MBit/s 是從 Bytes / Real s 換算而來的(需注意 bytes , bites 轉換).8388608(Bytes) / 0.2(s) x 8(Bytes -> Bit) / 1024 (Bit->KBit) / 1024(KBit->MBits) 大約為 331.9723(MBit/s)
其他數值所代表的意思
- l,1 : l-Local 自己, 1-Remote 遠端.
- Bytes : 總傳送資料數.
- Real s : 傳送所花時間(單位秒),浮點數(格式 %8.2),
- CPU s : 傳送所使用的 CPU 時間(單位秒),浮點數(格式 %8.2),
- Real-MBit/s : 每秒可以傳送的資料量,浮點數(格式 %12.4)
- CPU-MBit/s : 每秒 CPU 可以處理的資料量,浮點數(格式 %12.4),
- Calls : Prints the number of calls,整數 (%8).
- Real-C/s : Prints the real call rate in calls/s,浮點數(格式 %10.2).
- CPU-C/s : Prints the cpu call rate in calls/s,浮點數(格式 %10.2).
- -n : number of buffers (預設為 2048).
- -l : length of buffer (預設為 4096).
Buffers 的數量跟長度是可以自行設定.root@ubuntu:~# nttcp -t -T -n 4096 -l 10240 192.168.95.151 Bytes Real s CPU s Real-MBit/s CPU-MBit/s Calls Real-C/s CPU-C/s l 41943040 0.58 0.53 580.8410 633.2722 4096 7090.34 7730.4 1 41943040 0.60 0.11 560.9252 3087.6228 4974 8314.97 45769.9
- -r : 當接收端.
要當接收 (-r) 或是傳送 (-t) 皆可以設定.root@ubuntu:~# nttcp -r -T 192.168.95.151 Bytes Real s CPU s Real-MBit/s CPU-MBit/s Calls Real-C/s CPU-C/s l 8388608 0.08 0.03 804.5083 2592.0766 2083 24971.23 80455.8 1 8388608 0.08 0.07 798.4683 969.8794 2048 24367.32 29598.4
- -v : verbose 顯示更多訊息.
root@ubuntu:~# nttcp -t -T -v 192.168.95.151 nttcp-l: nttcp, version 1.47 nttcp-l: Pid=1497 nttcp-l: from 192.168.95.151: "192.168.95.151" (=nttcp-1: Pid=1500, InetPeer= 1) nttcp-l: from 192.168.95.151: "192.168.95.151" (=nttcp-1: Optionline="nttcp@-r@) nttcp-l: from 192.168.95.151: "192.168.95.151" (=dataport: 5038) nttcp-l: send window size = 87040 nttcp-l: receive window size = 372480 nttcp-l: buflen=4096, bufcnt=2048, dataport=5038/tcp nttcp-l: try to get outstanding messages from 1 remote clients nttcp-1: accept from 192.168.95.159 nttcp-1: send window size = 87040 nttcp-1: receive window size = 374400 nttcp-1: buflen=4096, bufcnt=2048, dataport=5038/tcp nttcp-l: transmitted 8388608 bytes Bytes Real s CPU s Real-MBit/s CPU-MBit/s Calls Real-C/s CPU-C/s l 8388608 0.25 0.24 264.6071 276.0262 2048 8075.17 8423.7 nttcp-l: try to get outstanding messages from 1 remote clients nttcp-1: received 8388608 bytes 1 8388608 0.26 0.04 261.6310 1708.7787 2298 8958.99 58513.5 nttcp-1: exiting
- -u : 使用 UDP
root@ubuntu:~# nttcp -t -T -u -v 192.168.95.151 nttcp-l: nttcp, version 1.47 nttcp-l: Pid=1496 nttcp-l: from 192.168.95.151: "192.168.95.151" (=nttcp-1: Pid=1499, InetPeer= 1) nttcp-l: from 192.168.95.151: "192.168.95.151" (=nttcp-1: Optionline="nttcp@-r@) nttcp-l: from 192.168.95.151: "192.168.95.151" (=dataport: 5038) nttcp-l: send window size = 212992 nttcp-l: receive window size = 212992 nttcp-l: buflen=4096, bufcnt=2048, dataport=5038/udp nttcp-l: try to get outstanding messages from 1 remote clients nttcp-1: buflen=4096, bufcnt=2048, dataport=5038/udp nttcp-l: transmitted 8388608 bytes Bytes Real s CPU s Real-MBit/s CPU-MBit/s Calls Real-C/s CPU-C/s l 8388608 0.29 0.29 227.7084 229.1382 2051 6959.29 7003.0 nttcp-l: try to get outstanding messages from 1 remote clients nttcp-1: got EOF nttcp-1: received 8388608 bytes 1 8388608 0.29 0.04 227.7061 1884.4452 2049 6952.43 57536.8 nttcp-1: exiting
- -f : 自訂測試輸出格式.
使用參數 -f format string 可以自訂輸出格式 (預設測試輸出格式為 %9b%8.2rt%8.2ct%12.4rbr%12.4cbr%8c%10.2rcr%10.2ccr)
輸出可用參數如下.- b – 顯示傳送或接收的 bytes 總數 (整數).
- l – 顯示 buffer length in bytes (整數).
- n – 顯示 buffer count (整數).
- c – 顯示 number of calls (整數).
- rt – 顯示 real time in s (浮點數).
- rbr – 顯示 real bit rate in MBit/s (浮點數).
- rcr – 顯示 real call rate in calls/s (浮點數).
- ct – 顯示 cpu time in s (浮點數).
- cbr – 顯示 cpu bit rate in MBit/s (浮點數).
- ccr – 顯示 cpu call rate in calls/s (浮點數).
root@ubuntu:~# nttcp -t -T -f %9b%8.2rt%12.4rbr 192.168.95.151 Bytes Real s Real-MBit/s l 8388608 0.11 628.6427 1 8388608 0.11 610.4524
更多參數使用請參考 man page 或是 https://linux.die.net/man/1/nttcp
可惜沒看到設定時間的參數,只能透過參數 -n : number of buffers (預設為 2048) 與 -l : length of buffer (預設為 4096) 來把 nttcp 當作長時間壓力測試的工具.
沒有解決問題,試試搜尋本站其他內容