計算 Netstat 的開銷應該在安靜的網絡中進行,以避免其他網絡流量(如廣播或多播流量)影響數據準確性。
使用 Netstat 計算應用程式的網路額外負荷
- 使用 Netstat 擷取目前的介面統計數據。
- 執行應用程式。
- 再次使用 Netstat 取得介面統計數據。
- 計算兩次 Netstat 測量之間接收到的位元組數量。
例
下列範例示範這些步驟,使用TTCP一次傳送10個字組的數據。
首先,計算應用程式的理論性負擔。 針對此測試,所有封包都是60個字節(乙太網路最小值)。 此傳輸需要三個封包來設定連線、10 個數據封包、10 個認可封包(幾乎每次觸發延遲 ACK),以及四個封包以正常關閉連線。
這相當於每個 60 個字節的 27 個封包,或 1620 個字節(3+4+10+10)*60=1620)。 由於傳輸的數據只有 10 個字節,因此額外負荷為 1610 個字節,超過 99 個% 通訊協定額外負荷。
命令
netstat -e
Interface Statistics
Received Sent
Bytes 392291400 444684566
Unicast packets 487627 570086
Non-unicast packets 1159163 11300
Discards 0 0
Errors 0 0
Unknown protocols 52812
ttcp -t -h0 -D -l1 -n10 -p9 172.31.71.99
ttcp-t: 10 bytes in 2168 real milliseconds = 0 KB/sec
ttcp-t: 10 I/O calls, msec/call = 216, calls/sec = 4, bytes/call = 1
netstat -e
Interface Statistics
Received Sent
Bytes 39229207 444685382
Unicast packets 487641 570100
Non-unicast packets 1159164 11301
Discards 0 0
Errors 0 0
Unknown protocols 52812
計算
已傳送 : 816 個字節
已接收 : 674 個字節
位元組總數: 1490
用戶位元組: 10
額外負荷: 1480/1490 = 99.3%
**Goodput: **= 5 個字節/秒(或 40 位/秒)
注意
實際傳輸的位元組與理論值不符,因為在 Netstat 值中未考慮到填補用的位元組。
相關主題