你所知道的VPS测速方法可能并不可靠
我个人不喜欢用网上流传的各种“VPS测速脚本”,有3个原因:
- 可能不安全,这些脚本分布在各种乱七八糟的个人网站上,直接把shell代码curl/wget进bash是不明智的,即使脚本放在github,我也没有义务去100%信任,代码背后还是人
- 源脚本的更新频率比主流Linux包管理系统里的benchmark工具快不到哪里去,对我来说一个sysbench测CPU、磁盘IO、内存足够,依赖3方脚本画蛇添足
- 一些脚本里把简单数一数/proc/cpuinfo里的内核数叫“CPU测速”,可见脚本作者对服务器测速的理解根本是一知半解的,但这么低质的工具却反复出现在很多VPS博主的推荐清单里
我也不相信任何厂商提供的所谓测速(speedtest)节点,并不一定说厂商故意骗我(尽管这种可能性在小厂身上太常见),但并不是主要的。VPS厂商提供的测试节点不可靠,还因为测试节点的配置不透明也不开放,你测不到磁盘IO性能这样非常关键的方面,另外,因为IP长期暴露容易受到各种干扰,也还是有配置不透明,测出来的结果也缺乏代表性。所以笔者从不依赖测试节点的评测数据,我宁可自己买一台试用,先测再用,这是笨办法,但很可靠。
磁盘IO、CPU、内存
测这些东西sysbench一个工具足矣,用起来很简单,使用方法可以参考sysbench --help
或参考网上资料。以磁盘IO测速为例,下面是一个例子,命令都是最简单的 sysbench fileio prepare; sysbench fileio --file-test-mode=rndrw run;
这是一台4核8G国内某云计算厂深圳节点的服务器的测速结果:
File operations:
reads/s: 718.79
writes/s: 479.19
fsyncs/s: 1522.55
Throughput:
read, MiB/s: 11.23
written, MiB/s: 7.49
General statistics:
total time: 10.0003s
total number of events: 27217
Latency (ms):
min: 0.00
avg: 0.37
max: 25.48
95th percentile: 0.97
sum: 9978.72
Threads fairness:
events (avg/stddev): 27217.0000/0.00
execution time (avg/stddev): 9.9787/0.00
这是一台单核2G国外某知名VPS供应商硅谷节点的fileio测速结果:
File operations:
reads/s: 4249.99
writes/s: 2833.39
fsyncs/s: 9066.85
Throughput:
read, MiB/s: 66.41
written, MiB/s: 44.27
General statistics:
total time: 10.0079s
total number of events: 161523
Latency (ms):
min: 0.00
avg: 0.06
max: 5.16
95th percentile: 0.16
sum: 9923.94
Threads fairness:
events (avg/stddev): 161523.0000/0.00
execution time (avg/stddev): 9.9239/0.00
一个VPS厂商的磁盘IO速度我认为是很能说明问题的,因为磁盘IO直接决定绝大多数应用的基础性能,服务商的技术架构、销售模式、管理水平多少都体现在上面了。上面的结果虽然只是单次测速,但它是一个让VPS用户无法忽视的结果,这种情况也是很多时候做VPS推荐容易翻车的原因,VPS分了多少个CPU核心,多少G内存,多少G硬盘是可见的,而其它很多东西对普通用户来说就不是这么一目了然了,这就是很多VPS老玩家挂在嘴边的“这行的水很深”。
网络测速
- 本机Ping:判断一台VPS服务器适不适合架设某些应用,最直接的方法是在24小时内取几个时间点从本机多次Ping一下(先确定服务器ICMP协议已打开),观察返回结果,观察延迟和Ping通率,延迟过高(>250ms)或Ping通率过低(<80%)的服务不必考虑
- 本机SSH:SSH连接质量决定你的VPS以后管理起来方不方便,不是Ping质量高的主机SSH质量都高,网络干扰是一个很大的变量,笔者用过Ping起来通畅但一连SSH就断线的主机,也用过几个月都难得掉线的VPS,为什么会这样到现在都是个迷
- SCP/SFTP下载:在VPS上建一个大文件,用SCP/SFTP下载,前面你已经确认过SSH连接质量,SCP/SFTP下载是基于SSH加密链路的,所以下载本身应该没问题,只需要观察下载速度,太慢的VPS不考虑,怎么才算太慢呢?观看720P在线流媒体所需最小带宽约为2.5Mbps(约合320KB/s),保守一点加一倍,也就是说你没有640KB/s的下载速度可能无法“流程”观看,仅做参考。用SCP/SFTP下载测速可能比任何其他途径都可靠,因为第一这是真正的实机实线测试,不是什么测试节点,第二SCP/SFTP(加密)下载和真实的网络传输很接近,通过http协议测出的下载速度并不能代表实际网络流量方式
- SCP/SFTP上传:如果你打算拿VPS当网盘,上传速度也无法忽略,仍然用SCP/SFTP测试,你可以在命令行操作,也可以用客户端如:WinSCP
综合测速
上面的测试都通过以后,你不妨把应用装上。如果是网站,你可以用WebPageTest,GTMetrix,ChinaZ等工具,不过要注意,能影响网站综合速度的因素很多,服务器速度只是其中之一,确保你理解这一点;如果是非HTTP协议上的应用,你应该用对应的客户端在实际使用中观察速度。综合测速是最终知道你的VPS与所架设的应用间匹配度的最终办法。笔者一般会在多台待选VPS上装上相同应用,对比测试过后择优购买。