當咱們說一個網絡環境好時,一般是指咱們「感受」訪問網站馬上就打開了;但是若是反過來,一個網站好久纔打開,就必定是網絡環境差嗎?未必,也多是網站自己有問題。若是這是本身的網站,你必定不但願經過反覆刷新頁面,或者多拿幾臺電腦訪問去「感受」它的速度做爲判斷網絡是否良好的依據,咱們須要一個更加可靠的技術手段。這些指標即是判斷到服務器的網絡是否良好的基礎指標。html
除了故障排查外,如下幾種狀況咱們也須要了解這些參數:linux
VPS
:在你購買一臺VPS
,特別是外國的VPS
時,你必定會想了解到底在外國和在國內能不能順暢地訪問本身的VPS
,特別是帶寬參數是否跟實際購買的一致;首先,沒有一個通用的指標,不一樣的應用場景所須要的指標各不相同,好比 IP電話、視頻與訪問網站的網絡指標要求就各不相同,這裏只分析網站訪問的狀況。web
從服務器環境角度看,服務器只能控制本身的帶寬,可是普通用戶實際訪問的環境是控制不了的,服務器須要作的是在差的環境也能提供較好的體驗,這不是本文的主題,因此咱們談指標時並非指服務器的角度。chrome
從用戶(開發者或者普通用戶)環境角度看,若是一個網站自己是符合要求的(Google Pagespeed Insight
達到90分以上),網絡環境應該知足什麼樣的指標,用戶打開咱們的網站纔會很快。這自己也是一個經驗指標,並無一個定論,下面的指標是我在作性能測試時要求的指標,它的要求高於普通用戶瀏覽網站,所以可以知足此指標,網絡環境是沒問題的。服務器
<100ms
<20ms
<1%
使用iperf
工具測試服務器帶寬,它分爲服務端與客戶端,兩邊都要安裝iperf
工具。在Linux
經過yum
或者apt-get
便可直接安裝。網絡
IP
爲106.14.26.11
)運行iperf
服務:#iperf -s ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 85.3 KByte (default)
這是一臺上下行帶寬都接近100Mbits/sec
的服務器,實測數值不該該與該數值偏離太遠。chrome-devtools
測試上行和下行帶寬工具
$iperf -c 106.14.26.11 -t 60 -d ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------ ------------------------------------------------------------ Client connecting to 45.32.64.187, TCP port 5001 TCP window size: 197 KByte (default) ------------------------------------------------------------ [ 4] local 104.250.144.8 port 50040 connected with 106.14.26.11 port 5001 [ 5] local 104.250.144.8 port 5001 connected with 106.14.26.11 port 34386 [ ID] Interval Transfer Bandwidth [ 4] 0.0-60.0 sec 658 MBytes 92.0 Mbits/sec #上行帶寬 [ 5] 0.0-60.4 sec 628 MBytes 87.4 Mbits/sec #下行帶寬
從測試結果看,上行帶寬爲92.0Mbits/sec
, 下行帶寬爲87.2Mbits/sec
,低於服務器的100Mbits/sec
,可是沒有低得很離譜。性能
若是你的客戶端沒法鏈接到
iperf
服務端,多是主機的防火牆擋住或者VPS
提供商作了限制。對於前者,經過iptables -F
便可解決;對於後者,有幾種解法:進VPS
提供商的控制檯修改、聯繫VPS
提供商、修改端口爲外部能夠訪問獲得的端口。測試
延遲,抖動和丟包率,直接使用ping
作測試便可。若是想測量這個值,建議抓100
個包測試:
$ ping -c 100 www.baidu.com PING www.a.shifen.com (163.177.151.109): 56 data bytes 64 bytes from 163.177.151.109: icmp_seq=0 ttl=55 time=26.639 ms 64 bytes from 163.177.151.109: icmp_seq=1 ttl=55 time=24.329 ms 64 bytes from 163.177.151.109: icmp_seq=2 ttl=55 time=24.794 ms 64 bytes from 163.177.151.109: icmp_seq=3 ttl=55 time=22.709 ms 64 bytes from 163.177.151.109: icmp_seq=4 ttl=55 time=39.994 ms 64 bytes from 163.177.151.109: icmp_seq=5 ttl=55 time=50.786 ms 。。。省略 ^C --- www.a.shifen.com ping statistics --- 100 packets transmitted, 100 packets received, 0.0% packet loss #最後這個百分比就是丟 包率 round-trip min/avg/max/stddev = 21.505/26.743/50.786/6.613 ms #分別表示最小延遲、平均延遲、最大延遲、抖動(抖動就是延遲標準差)
根據上面的結果,咱們獲得結論:
延遲:26.743ms 抖動: 6.613ms 丟包率: 0.0%
符合指標要求,因此訪問百度必定很快。(這裏假設帶寬是沒問題的,測量到服務器的帶寬須要服務器支持,因此是測量不了的)