① 網路基準測試
表示鏈路的最大傳輸速率,單位是b/s(比特 / 秒)。
表示單位時間內成功傳輸的數據量,單位通常為 b/s(比特 / 秒)或者 B/s(位元組 / 秒)。吞吐量受帶寬限制
表示從網路請求發出後,一直收到遠端響應,所需要的時間延遲。在不同場景中,這一指標可能會有不同含義。比如,它可以表示,建立連接需要的時間(比如 TCP 握手延時),或一個數據包往返所需的時間(比如 RTT)。
Packet Per Second(包 / 秒) 的縮寫,表示以網路包為單位的傳輸速率。PPS通常用來評估網路的轉發能力。
Linux 內核自帶的高性能網路測試工具 pktgen。pktgen 支持豐富的自定義選項,方便你根據實際需要構造所需網路包,從而更准確地測試出目標伺服器的性能。
不過,在 Linux 系統中,你並不能直接找到 pktgen 命令,因為 pktgen 作為一個內核線程來運行,需要你載入 pktgen 內核模塊後,再通過 /proc 文件系統來交互。
根據上面的結果,我們發現,PPS 為 12 萬,吞吐量為 61 Mb/s,沒有發生錯誤。那麼,12 萬的 PPS 好不好呢?
作為對比,你可以計算一下千兆交換機的 PPS。交換機可以達到線速(滿負載時,無差錯轉發),它的 PPS 就是 1000Mbit 除以乙太網幀的大小,即 1000Mbps / ((64+20)*8bit) = 1.5 Mpps(其中,20B 為乙太網幀前導和幀間距的大小)。
即使是千兆交換機的 PPS,也可以達到 150 萬 PPS,比我們測試得到的 12 萬大多了。所以,看到這個數值你並不用擔心,現在的多核伺服器和萬兆網卡已經很普遍了,稍做優化就可以達到數百萬的 PPS。
而且,如果你用了DPDK 或 XDP ,還能達到千萬數量級。
iperf 和 netperf 都是最常用的網路性能測試工具,用來測試TCP 和 UDP的吞吐量。它們都以客戶端和伺服器通信的方式,測試一段時間內的平均吞吐量。這里以 iperf 命令為例。
從上面可以看出目標機器的吞吐量為866 Mb/s。
測試HTTP的性能,也有大量工具可以使用,比如 ab,webbench等。這里以 ab 為例
TODO