一只以來有個困惑,如何通過下載速率來判斷源站的出口帶寬是多少,今天終於搞明白了;
測試之前先搞明白幾個單位換算:
1、運營商一般是按bit/s來計算的;
2、1Bytes=8bit
3、1kb=1024Bytes
4、1Mb=1024kb
了解了上面這幾個單位換算的概念之后就開始做實驗測試;我有一台公網雲主機帶寬明確知道是1M的;在雲主機上開python端口也好還是部署http服務也好,總之需要能從該雲主機下載;我采用的是開python端口的方式,這樣比較方便;然后在執行python命令的目錄下放一個幾M的文件,因為我本身就是1M帶寬,太大的文件下載太慢;
1、開python端口
python2: python -m SimpleHTTPServer 8083
python3: python3 -m http.server 8083
開放端口自定義,只要不跟現網沖突就成;
2、通過curl命令的speed_download模塊測試下載速度
[zhangzhide@zhangzhidedeMacBook-Pro ~ ]$ curl -so /dev/null "http://IP地址:8083/mjpg-streamer.gz" -w "TransCode: %{http_code} Connect: %{time_connect} TTFB: %{time_starttransfer} Total time: %{time_total} speed_download: %{speed_download} B/s \n" TransCode: 200 Connect: 0.009182 TTFB: 0.023201 Total time: 11.281602 speed_download: 136422.000 B/s
通過測試,下載速度是136422Bytes/s;
先換算成bit:136422 X 8 = 1091376
再換算成Mb:1091376/1024/1024=1.04Mbit/s
通過換算得出該雲主機的帶寬確實是1M的帶寬,這個值會上下波動,但是差距不會太大;也證明我這個雲主機的提供商沒有欺詐顧客,確實提供的是1M的帶寬;