共用方式為


使用 Netstat 計算額外負荷

計算 Netstat 的開銷應該在安靜的網絡中進行,以避免其他網絡流量(如廣播或多播流量)影響數據準確性。

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

  1. 使用 Netstat 擷取目前的介面統計數據。
  2. 執行應用程式。
  3. 再次使用 Netstat 取得介面統計數據。
  4. 計算兩次 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 值中未考慮到填補用的位元組。

 

應用程式行為

高效能 Windows Sockets 應用程式