測速
speedtest-cli是個什么東西?
Speedtest-cli是用Python寫的腳本語言,主要用來測試互聯(lián)網(wǎng)網(wǎng)速。本腳本可以測試網(wǎng)速到km單位,也可以正對每個服務(wù)器的網(wǎng)速進行測試,還可以測試某個url鏈接的網(wǎng)速
項目地址:https://github.com/sivel/speedtest-cli
1.下載測速工具 speedtest-cl
wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
2.添加可執(zhí)行權(quán)限
chmod + x speedtest-cli
3.無參數(shù)默認(rèn)測試
./speedtest-cli
測試輸出

測延時
PsPing & PaPing 介紹
通常,我們測試數(shù)據(jù)包能否通過 IP 協(xié)議到達特定主機時,都習(xí)慣使用 ping 命令。工作時 ping 向目標(biāo)主機發(fā)送一個 IMCP Echo 請求的數(shù)據(jù)包,并等待接收 Echo 響應(yīng)數(shù)據(jù)包,通過響應(yīng)時間和成功響應(yīng)的次數(shù)來估算丟包率和網(wǎng)絡(luò)時延。但是在 Azure 中,ICMP 包無法通過防火墻和負(fù)載均衡器,所以不能直接使用 ping 來測試 Azure 中的虛擬機和服務(wù)的連通性(VPN 和 Express Route 通道中的流量不經(jīng)過負(fù)載均衡器,所以只要鏈路上的防火墻允許 ICMP 包傳遞,ping 依然可用)。
為了在 Azure 中進行連通性測試,例如測試 RDP、SSH 端口可用性,或者 HTTP、HTTPS 服務(wù)穩(wěn)定性,甚至測試從 Azure 向外部服務(wù)的連接,我們都推薦使用 PsPing 或 PaPing。PsPing 是微軟 PSTools 工具套件中的其中一個命令。除了ICMP ping 測試,它主要用來測試 TCP 端口的連通性,還可以測試 TCP/UDP 網(wǎng)絡(luò)時延和帶寬。不過, PsPing 只能在 Windows 中運行。如果您需要在 Linux 中發(fā)起 TCP 端口連通性和網(wǎng)路時延的測試,可以使用 PaPing 。PaPing 是一個跨平臺的開源工具。它的功能相對 PsPing 而言更簡單,只支持 TCP 端口的相關(guān)測試,不支持 UDP 端口的測試。
PsPing
下載和安裝
PsPing 下載地址包含了它的詳細(xì)使用方法,若有需要可以查看此頁面上的幫助信息。下載完后,可以單獨將 psping.exe 命令解壓出來放在任意路徑,然后從命令提示符來運行。當(dāng)然,您也可以將整個壓縮包解壓到指定的路徑來獲取壓縮包內(nèi)完整的 PSTools 工具套件。
使用方法
打開命令行提示符窗口,進入到 psping.exe 所在的目錄,就可以運行 PsPing 了。如前文所述,PsPing 支持的測試方法有很多,這里我們主要介紹針對 TCP 端口的連通性測試。最簡單的測試方法就是直接在 psping.exe 命令后面加上要測試的主機名和端口,然后執(zhí)行。這里以從 Azure 內(nèi)部測試 www.azure.cn 的 TCP-80 端口為例,命令為psping.exe www.azure.cn:80。
C:\Tools>psping www.azure.cn:80
PsPing v2.10 - PsPing - ping, latency, bandwidth measurement utility
Copyright (C) 2012-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
TCP connect to 116.211.251.197:80:
5 iterations (warmup 1) ping test:
Connecting to 116.211.251.197:80 (warmup): from 10.91.1.4:51413: 34.69ms
Connecting to 116.211.251.197:80: from 10.91.1.4:51414: 29.11ms
Connecting to 116.211.251.197:80: from 10.91.1.4:51415: 30.56ms
Connecting to 116.211.251.197:80: from 10.91.1.4:51416: 49.02ms
Connecting to 116.211.251.197:80: from 10.91.1.4:51417: 43.84ms
TCP connect statistics for 116.211.251.197:80:
Sent = 4, Received = 4, Lost = 0 (0% loss),
Minimum = 29.11ms, Maximum = 49.02ms, Average = 38.13ms
我們可以看到,PsPing 獲取到 www.azure.cn 的IP為 175.25.168.95。隨后進行了一次熱身測試,熱身測試的目的在于使正式的測試數(shù)據(jù)更準(zhǔn)確。最終統(tǒng)計結(jié)果只計算 4 次正式測試數(shù)據(jù)。其中,統(tǒng)計結(jié)果第一行包含發(fā)送請求的次數(shù),接收到回應(yīng)的次數(shù),連接丟失的次數(shù)以及丟失百分比。第二行為最小、最大以及平均的響應(yīng)時延。 我們還可以在命令行中添加參數(shù)來定義 PsPing 進行測試的方式。以下為 PsPing 進行 TCP 連接測試時所支持的參數(shù):
-t 類似于 ICMP 的長 ping 測試,直到按下 Ctrl+C 停止測試,并顯示統(tǒng)計結(jié)果;
-n 指定測試次數(shù)。還可以指定測試的時間長度,以秒為單位,使用時在數(shù)字后加上 s,例如“10s”;
-i 每次測試的間隔,默認(rèn)為 1 秒。還可以指定為 0 來進行快速 ping 測試;
-w 熱身次數(shù),默認(rèn)為 1 次;
-q 測試過程中不輸出結(jié)果,結(jié)束后顯示統(tǒng)計結(jié)果;
-h 將時延結(jié)果統(tǒng)計為直方圖打印(默認(rèn)打印 20行),也可以指定結(jié)果行數(shù),比如 -h 10,指定 10 行;另一種使用方法是統(tǒng)計自定義時延,比如 -h "65,70",結(jié)果將統(tǒng)計時延分別為 65 和 70 毫秒的次數(shù);
-4 強制使用 IPv4;
-6 強制使用 IPv6;
更多時候,我們指定測試次數(shù),例如 500 次、1000 次。待測試結(jié)束后查看統(tǒng)計結(jié)果,根據(jù)連接成功率和 TCP 響應(yīng)時延來判斷被檢測服務(wù)的可用性和穩(wěn)定性。不過,由于是測試 TCP 連接,測試時不排除被測試服務(wù)有一定的防護機制,對連續(xù)、大量的 TCP 連接采取拒絕服務(wù)或者限制服務(wù),導(dǎo)致測試結(jié)果看起來很槽糕。這需要測試人對被測試服務(wù)有一定的了解。
我們還是以測試 www.azure.cn 為例,測試 500 次連接的命令為 psping.exe -n 500 www.azure.cn:80
復(fù)制
C:\Tools>psping -n 500 www.azure.cn:80
PsPing v2.10 - PsPing - ping, latency, bandwidth measurement utility
Copyright (C) 2012-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
TCP connect to 175.25.168.95:80: 501 iterations (warmup 1) ping test: Connecting to 175.25.168.95:80 (warmup): from 10.91.1.4:51531: 2.28ms Connecting to 175.25.168.95:80: from 10.91.1.4:51532: 1.86ms Connecting to 175.25.168.95:80: from 10.91.1.4:51533: 2.67ms .................... Connecting to 175.25.168.95:80: from 10.91.1.4:52029: 1.90ms Connecting to 175.25.168.95:80: from 10.91.1.4:52030: 2.69ms Connecting to 175.25.168.95:80: from 10.91.1.4:52031: 2.69ms Connecting to 175.25.168.95:80: from 10.91.1.4:52032: 2.39ms
TCP connect statistics for 175.25.168.95:80:
Sent = 500, Received = 500, Lost = 0 (0% loss),
Minimum = 1.49ms, Maximum = 4.72ms, Average = 2.35ms
PaPing
下載和安裝
PaPing 下載網(wǎng)址,其中 32 位 Linux 對應(yīng)的壓縮包為 paping_1.5.5_x86_linux.tar.gz,64 位的 Linux 對應(yīng)的壓縮包為 paping_1.5.5_x86-64_linux.tar.gz。下載完成后,直接解壓到任意路徑,就可以直接執(zhí)行了。
以 64 位 Linux 為例:
#cd ~
#wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/paping/paping_1.5.5_x86-64_linux.tar.gz
#tar zxvf paping_1.5.5_x86-64_linux.tar.gz
使用方法
PaPing 的使用方法與 PsPing 非常相似,甚至更簡單,功能更單一。PaPing 所支持的參數(shù)如下:
-p, --port N 指定被測試服務(wù)的 TCP 端口(必須);
--nocolor 屏蔽彩色輸出;
-t, --timeout 指定超時時長,單位為毫秒,默認(rèn)值為 1000;
-c, --count N 指定測試次數(shù)。
默認(rèn) PaPing 的結(jié)果會根據(jù) Shell 的色彩配置輸出不同顏色。如果您將結(jié)果通過“>”輸出到文件,建議使用 --nocolor 參數(shù)。這樣輸出的文件中就不會包含色彩相關(guān)的字符,更方便后期處理。
同樣以測試 500 次對 www.azure.cn 的 80 端口的 TCP 連接為例,跳轉(zhuǎn)到 PaPing 所在的路徑后,執(zhí)行 ./paping -p 80 -c 500 www.azure.cn。
[kyle@centos7 ~]$ ./paping -p 80 -c 500 www.azure.cn
paping v1.5.5 - Copyright (c) 2011 Mike Lovell
Connecting to 1stcncloud.dtwscachev290.ourwebcdn.com [112.17.28.203] on TCP 80:
Connected to 112.17.28.203: time=8.26ms protocol=TCP port=80
Connected to 112.17.28.203: time=7.48ms protocol=TCP port=80
Connected to 112.17.28.203: time=9.62ms protocol=TCP port=80
Connected to 112.17.28.203: time=8.54ms protocol=TCP port=80
....................
Connected to 112.17.28.203: time=9.59ms protocol=TCP port=80
Connected to 112.17.28.203: time=11.79ms protocol=TCP port=80
Connected to 112.17.28.203: time=8.14ms protocol=TCP port=80
Connected to 112.17.28.203: time=10.94ms protocol=TCP port=80
Connected to 112.17.28.203: time=22.35ms protocol=TCP port=80
Connection statistics:
Attempted = 500, Connected = 500, Failed = 0 (0.00%)
Approximate connection times:
Minimum = 6.46ms, Maximum = 25.00ms, Average = 12.40ms