使用 Netstat 計算額外負荷

計算 Netstat 的額外負荷應該在無訊息網路上執行,以避免其他網路流量扭曲資料,例如廣播或多播流量。

使用 Netstat 計算應用程式的網路額外負荷

  1. 使用 Netstat 擷取目前的介面統計資料。
  2. 執行應用程式。
  3. 再次使用 Netstat 取得介面統計資料。
  4. 計算兩個 Netstat 度量之間收到的位元組數目。

範例

下列範例示範這些步驟,使用 TTCP 一次傳送 10 個位元組的資料。

首先,會計算應用程式的理論額外負荷。 在此測試中,所有封包都是 60 個位元組, (乙太網路最小) 。 此傳輸需要三個封包來設定連線、10 個數據封包、10 個通知封包, (延遲的 ACK 幾乎每次觸發) ,以及四個封包以正常方式關閉連線。

這相當於每個 60 個位元組的 27 個封包,或 1620 個位元組 (3+4+10+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 值中未考慮填補位元組。

 

應用程式行為

高效能 Windows Sockets 應用程式