VPS购买页面,不少商家写着“高速带宽”“低延迟”“企业级SSD”,但是实际购买后发现VPS用起来很卡,连接总感觉慢半拍,到底是被商家忽悠还是自己网络问题?想找商家理论,又拿不出证据。
每次拿到新VPS,不急着部署业务,先花半小时把里里外外测一遍。测出来的数据,比商家说的靠谱多了。今天就把这几招分享给你。
先说最基础的——延迟和丢包。这是用户感知最明显的东西。你敲个命令就能看个大概:
ping -c 100 你的服务器IP
看最后统计出来的平均延迟和丢包率。平均延迟如果在50ms以内,算优秀;50到150ms,正常;超过200ms,就得留个心眼了。丢包率超过1%,说明线路不太稳,高峰期可能会卡。
但ping只能测ICMP协议,真正跑业务用的是TCP。所以更靠谱的做法是用tcping或者mtr。mtr能告诉你每一跳路由的延迟和丢包情况,帮你定位问题出在哪一段:
mtr --report 你的服务器IP
如果发现某跳路由延迟突然飙升,或者丢包率异常,那就是那一段线路有问题。这招特别有用,拿着这个结果去找商家,比说“我感觉慢”有力多了。
延迟测完,该测带宽了。很多商家标的带宽是共享的,高峰期可能跑不满。用iperf3可以测出真实带宽,但需要两端都有iperf3。如果只有服务端,可以用wget拉一个测试文件:
wget -O /dev/null http://你的服务器IP/100mb.test
看下载速度,算一下大概多少Mbps。如果标的是10M带宽,实际只有2M,那就有问题了。不过要注意,这个速度受你本地网络影响,最好用多几个不同地方的机器测,或者找朋友帮忙测,取个平均值。
再往下,是磁盘性能。这东西容易被忽略,但影响很大。数据库、缓存、日志读写都靠磁盘。用dd命令测个大概:
dd if=/dev/zero of=./test bs=1G count=1 oflag=direct
普通SSD应该在300MB/s以上,好一点的能到500MB/s甚至更高。如果只有几十兆,那就是踩坑了。再用fio测一下随机读写,4K随机读IOPS如果低于10000,跑数据库会有点吃力。
fio --name=randwrite --ioengine=libaio --rw=randwrite --bs=4k --size=1G --numjobs=1 --runtime=60 --group_reporting
测完这些基础指标,还有两个重要的东西要测——路由去程和回程。很多商家只告诉你去的线路好,回程绕路,你感受不到,但用户那边体验差。用BestTrace可以看路由走向:
wget https://cdn.ipip.net/17mon/besttrace_linux.zip
unzip besttrace_linux.zip
chmod +x besttrace
./besttrace -q 1 你的服务器IP
回程测试需要登录服务器,从服务器端跑同样的命令测到你本地。如果发现来回走的不是同一条线路,或者绕了很远的路,那高峰期可能会出问题。
最后提醒一下,测速的时间点很重要。别只在凌晨测,那会儿网络最通畅,测出来好看。要在晚高峰(晚上8点到11点)也测一次,看带宽能不能跑满,丢包率是不是飙升。有些商家平时给足带宽,高峰期就悄悄限速,只有这个时段测才能发现。
如果以上这些都测完了,数据都还满意,那这台VPS基本靠谱,可以放心用。如果测出来问题,先别急着找商家吵架,把测速数据截图、mtr结果、iperf3输出整理好,发给客服,用数据说话,他们处理起来也更有依据。
测速这件事,说白了就是给自己一个底。知道机器真实水平在哪,心里踏实,以后出了问题也知道从哪排查。毕竟服务器这东西,用着省心比什么都重要。
CN
EN