「伺服器很慢」可能是三種不同的情況:網路繁忙、伺服器上有程式在佔用頻寬,或者測試方法本身不對。下面七個步驟可以把它們區分開。指令適用於 Linux;套件名稱適用於使用 apt 的系統。
1. 檢視控制面板中的圖表
在控制面板中開啟伺服器,進入指標分頁。網路圖表顯示最近一小時、一天或一週的每秒對內和對外流量。資料來自虛擬化層,所以即使伺服器裡的系統卡死了也能看到。
它有兩樣東西不顯示:以 GB 計的總量,以及流量是哪個程式產生的。這就是後面幾步的作用。
同樣的資料也可以透過 API 取得,包括最近一個月:
curl -s "https://api.eqvps.com/api/v1/eqvps/services/SERVICE_ID/metrics?timeframe=month" \
-H "Authorization: Bearer $EQVPS_API_KEY"
2. 找到網路介面名
下面大多數指令都需要介面名:
ip -br addr
要找的是帶有您公用位址(NAT 伺服器上是私有位址)的那個介面,通常是 eth0 或 ens18。如果您的名字不同,請替換下面指令中的 eth0。
3. 用 vnStat 統計每天和每月流量
apt install -y vnstat
vnstat -l -i eth0 # live rate, Ctrl+C to stop
vnstat -d # per day
vnstat -m # per month
vnStat 讀取核心的介面計數器,重新啟動後資料不丟,幾乎不佔資源。它從安裝時開始計數,所以要在需要數字之前就裝好。
4. 檢視哪個程式在佔用頻寬
apt install -y nethogs
nethogs eth0
nethogs 會列出各個程式目前的傳送和接收速率。如果看到一個不認識的程式在大量發流量,請仔細檢查:意外的大流量上傳可能意味著伺服器已被入侵。
檢視連線本身:
ss -tunap | head -30
5. 做一次有意義的測速
可靠的方法是在兩台您能控制的機器之間用 iperf3。在另一台機器上啟動服務端:
iperf3 -s
在您的伺服器上,用 4 個流、30 秒測試兩個方向:
iperf3 -c OTHER_HOST -P 4 -t 30 # upload from this server
iperf3 -c OTHER_HOST -P 4 -t 30 -R # download to this server
NAT 伺服器只在 SSH 埠接受對內連線,所以請在另一台機器上執行 iperf3 -s,NAT 伺服器像上面那樣作為用戶端。
沒有第二台機器?從離您較近的快速映像下載一個大檔案,讀取平均速度:
curl -o /dev/null -w "%{speed_download}\n" https://mirror.example.net/1GB.bin
結果單位是位元組/秒。乘以 8 得到位元/秒:110000000 約等於 880 Mbit/s。
6. 檢查延遲和丟包
遠距離吞吐量低,往往是延遲或丟包問題,而不是頻寬問題:
apt install -y mtr-tiny
mtr -rwc 100 example.com
看最後一行的 Loss% 列。如果丟包只出現在中間某一跳、後面又消失了,通常只是那台路由器降低了 ping 回覆的優先順序,並不是真正的丟包。
7. 與正常數值對比
| 方案 | 埠 | 4 個流、線路空閒時的典型結果 |
|---|---|---|
| Linux VPS | 1 Gbit/s | 每個方向約 900–940 Mbit/s |
| Windows VPS | 150 Mbit/s | 約 140 Mbit/s |
當同一台物理機上的多台伺服器同時繁忙時,上行線路會在它們之間平均分配,所以高峰時段數字偏低是正常的。所有方案都沒有流量配額。分配方式詳見流量與網路速度。
在 Windows 伺服器上,任務管理器 → 效能 → 乙太網顯示即時速率,資源監視器 → 網路顯示各程式的流量。
如果數字確實偏低
對兩台不同的測試伺服器執行第 5 步,記下時間,然後提交工單,附上指令和輸出。有了這些,我們就能檢查那個時間點的上行線路。
評論
目前還沒有評論。歡迎成為第一位。