php丢包率测试,linux 网络延时、丢包与传输带宽关系测试
一、目的
在互聯網中,我們會向網絡運營商申請指定額度的帶寬。實際傳輸時,由于網絡QoS達不到要求,實際的傳輸帶寬可能達不到標稱值。本次測試在局域網環境中使用模擬工具模擬不同QoS下的網絡條件,得出不同QoS網絡下傳輸帶寬
二、網絡QoS指標
網絡的QoS通常用以下指標衡量:
丟包率:由于網絡擁塞,傳輸錯誤等造成的數據包丟失概率
延時:數據包發送到對端再返回到發送端的時長
延時抖動:衡量延時變化的程度
本次測試值模擬丟包率和延時與傳輸帶寬的關系。
注:本文中的丟包率指的是在傳輸速率小于最大傳輸帶寬時的丟包率。
三、測試方案
本次測試分兩個階段進行:
在丟包率為0的情況下,測試不同延時下的傳輸速率;
調整丟包率與延時,測試不同延時與丟包率組合下的傳輸速率。
四、測試環境
測試使用兩位服務器:
Server A:10.10.168.151
Server B:10.10.168.153
兩臺Server之間通過千兆以太網連接(帶寬為1000Mbps);
兩臺服務器上部署iperf,用于向網絡加流量,并統計傳輸速率;其中Server A上運行iperf server端(iperf -s),Server B上運行iperf client端(iperf -c 10.10.168.151 -t 100000 -i2)。數據流量方向是:server B?→ server A。iperf client端啟動1分鐘,統計1分鐘內的平均傳輸速率作為一次測試的結果。
在Server B上,使用tc 模擬不同QoS的網絡環境。tc 可以在server的出口方向模擬延時和丟包的情況:
添加延時:tc qdisc add dev enp0s25 root netem ?delay 50ms
添加丟包:tc qdisc add dev enp0s25 root netem ?loss 3%
添加延時與丟包:tc qdisc add dev enp0s25 root netem ?delay 50ms loss 3%
清空規則:tc qdisc del dev enp0s25 root
查看規則:tc qdisc ls dev enp0s25
五、測試結果
5.1? 延時與傳輸速率的關系
丟包設置為0,延時從1ms 變化到 5000ms,測試每一個延時下的傳輸速率。下表為測試結果:
延時在4000ms以內時,傳輸速率能在1Mbps以上。當延時到達5000ms時,傳輸速率下降到200kbps。延時越大,達到穩定傳輸速率的時間越長。
注意:以上測試是在iperf采用默認的window size測試的結果;window size會影響到max cwnd和max rwnd,在延時比較大的時候,max wnd = MIN(max cwnd, max rwnd)決定了最終的傳輸速度;rate = max wnd/rtt;從測試的結果看,max cwnd比較小,這個值決定的傳輸速度;以300ms延時的測試點為例,通過-w參數增加發送端window size,傳輸速率可以提升到83Mbps,此時max rwnd決定了傳輸速度,此時,再通過-w參數增加接收端window size,傳輸速率可以到達450Mbps
5.2、延時、丟表率與傳輸速率的關系
丟表率從1%-10%變化,延時從10ms變化到1000ms,測試每一個組合下的傳輸速率。當延時/丟包率增大時,傳輸速率會下降,當傳輸速率低于500kbps時,不再繼續增大延時/丟包率。下表為測試結果:
?
通過上表可以繪制丟包/延時與傳輸速率的曲面圖:
X軸:延時(ms)
Y軸:丟包率
Z軸:傳輸速率(kbps)
通過曲面圖,可以找到傳輸速率要達到500kbps/1000kbps時,延時與丟包率需要滿足的條件
以上測試是單個客戶端測試的結果。在Server B上啟動多個客戶端同時進行測試,只要總的傳輸速率不超過最大帶寬限制,每個客戶端的速率與單個客戶端測試的結果相同。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的php丢包率测试,linux 网络延时、丢包与传输带宽关系测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java raster_Raster
- 下一篇: php pcntl扩展下载,linux下