“服务器很慢”可能是三种不同的情况:网络繁忙、服务器上有程序在占用带宽,或者测试方法本身不对。下面七个步骤可以把它们区分开。命令适用于 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 步,记下时间,然后提交工单,附上命令和输出。有了这些,我们就能检查那个时间点的上行线路。
评论
暂无评论。来做第一个吧。