2017年1月10日 星期二

測試到NAS間的傳輸速度

今天傳檔案到NAS上時發現速度非常悲劇,只有3.5MB/s


















排查了好一陣子,最後找出是因為網路拓樸的關係才導致速度大減
重新調整一下網路後就達到11MB/s



























儘管現在已經把連線弄好了,不過一個同樣浮現在筆者腦中:

我們怎麼測試跟NAS之間的傳輸速度?




說到測試網路速度,大家第一時間想到的大概都是speedtest或是hinet的測速網頁。
不過NAS通常架設於區網內,許多時候我們電腦都是透過區網連到NAS上的。前面幾家服務所測試的都是電腦的對外連線 (Internet) 速度,並不符合現在的需求。

這裡筆者使用 iperf 軟體來測試網路連線狀況。
這是一個client-server架構的測試軟體,在NAS上運行server端並在個人電腦上運行client端即可測試傳輸速率了。


不過NAS上必須要安裝iperf,但是群暉NAS上卻幾乎無法自行安裝套件,連套件管理工具如npm、apt-get、yum等都沒有。那個我們要怎麼安裝與使用iperf呢?

幸好我們有大殺器:Docker


有人提供docker化後的iperf給人使用。
首先先到DSM中的套件中心安裝Docker














開啟Docker後,到倉庫伺服器頁面→搜尋iperf→點選networkstatic/iperf3→下載













下載完畢之後可以在映像檔頁籤看到,選擇好映像檔後點選佈署













接下來設定容器名稱,自己取個好記的名字即可,之後點進階設定


















進階設定裡,切換到連接埠設定頁。在本機連接埠裡輸入5201




















切換到環境設定,在底下執行指令裡打上-s後按下確定按鈕




















回到新增容器的頁面後按下一步,之後檢查設定無誤後點選套用

















此時回到Docker主介面,切換到容器頁籤就可以看到iperf的容器正在運行













到這一步我們就已經把iperf的server端準備好了。
註:如果你有啟用防火牆的話,記得設定允許5201port通過


接下來就是啟用client端並且實際傳輸資料來測試速度。

客戶端一樣到iperf的下載頁面下載。
安裝好客戶端之後,輸入命令就可以開始測試了
iperf3 -c 192.168.1.116 -t 60 -i 10
其中 -c 表示使用client模式。前面Docker設定裡打的-s表示使用server模式。
         192.168.1.116是NAS的內網IP
         -t 60表示測試60秒(預設是10秒)
         -i 10表示每10秒顯示一次報告(預設是1秒)




這張是調整網路前的測試結果,可以看到最後總結的Bandwidth只有30Mbit/s = 3.75MBytes/s















這張是調整網路後,可以看到速度提升到92Mbits/s=11.5MBytes/s


最後如果想要看到iperf server端的顯示,可以在Docker→容器→詳細資訊→日誌裡查看




















3 則留言:

  1. 大大您好!
    依您的步驟設定後,NAS裝好docker也安裝iprefn容器運作正常,但我在client端還是無法測速會出現iperf3: error - unable to connect to server: Connection refused,請問我是那邊設定出問題呢? (我把部份畫面截圖如下)
    謝謝

    https://drive.google.com/open?id=1YERLZ31SdmXSrVxxzEO7lSHruMdLbpyz

    回覆刪除
    回覆
    1. 從錯誤訊息來看似乎是連不上server端的iperf。一般來說會是網路設定問題。
      1. 檢查Docker的連接埠設定頁是否指定本機連接埠裡是5201。
      2. 防火牆的設定是否有允許5201。開啟方法為:控制台-->安全性-->防火牆-->編輯規則-->新增-->連接埠(從內建服務的清單選取連接埠)-->找到Docker iperf3。

      刪除