现在 VPS、独服市场需求大,由于国内需要各种备案,所以好多MJJ们都使用了国外的VPS,简介导致了无良商家的混入,质量参差不齐,想要购买某一个 VPS 主机,一般是先要看看这家的 VPS 主机的评测数据。现在就来专门整理一下相关的测试工具。
需要注意的是,关于 IO 读写速度的测试,根据以往的经验,像谷歌云服务器、亚马逊服务器等,IO 读写速度都比较低,而 SSD 在 IO 方面表现出色。另外,国外的 VPS 主机的速度很大程度上取决于线路的好坏,并且晚上和白天的测试速度会差别比较大。
常用检测脚本汇总
为方便使用,先汇总一下用于 VPS 各类检测的脚本,有关脚本的详细使用及说明可参阅下文的内容。
1、一键测试服务器到国内的速度脚本 Superspeed.sh :
1 2 3 |
wget https://raw.githubusercontent.com/oooldking/script/master/superspeed.sh chmod x superspeed.sh ./superspeed.sh |
测试回程路由脚本
1 |
wget -qO- git.io/besttrace | bash |
2、一键检测 VPS 的 CPU、内存、负载、IO 读写、机房带宽等脚本:bench.sh
命令 1:
wget -qO- bench.sh | bash
或者
curl -Lso- bench.sh | bash
命令 2:
wget -qO- 86.re/bench.sh | bash
或者
curl -so- 86.re/bench.sh | bash
备注:
bench.sh 既是脚本名,同时又是域名。如果以上失效,请使用以下地址下载再执行脚本:
下载地址:
wget https://github.com/teddysun/across/blob/master/bench.shs
3、可以看作 bench.sh 强化版:SuperBench.sh
新增 Virt 检测服务器类型参数。常见 openvz,kvm,独服都能检测出来。同时整合上面的 Superspeed.sh 一键测试服务器到国内的速度脚
本:
1 2 3 |
wget -qO- https://raw.githubusercontent.com/oooldking/script/master/superbench.sh | bash 或者 curl -Lso- https://raw.githubusercontent.com/oooldking/script/master/superbench.sh | bash |
4、一键带宽检测工具:speedtest-cli
安装命令:
1 2 3 |
sudo apt-get update apt-get install python-pip sudo pip install speedtest-cli |
使用方法:
1 2 3 4 5 6 7 8 9 10 |
speedtest-cli #后面也可以接以下参数: -h, --help show this help message and exit --share 分享你的网速,该命令会在 speedtest 网站上生成网速测试结果的图片。 --simple Suppress verbose output, only show basic information --list 根据距离显示 speedtest.net 的测试服务器列表。 --server=SERVER 指定列表中 id 的服务器来做测试。 --mini=MINI URL of the Speedtest Mini server --source=SOURCE Source ip address to bind to --version Show the version number and exit |
5、VPS 性能综合跑分工具:unixbench
命令如下:
1 2 3 |
wget --no-check-certificate https://github.com/teddysun/across/raw/master/unixbench.sh chmod x unixbench.sh ./unixbench.sh |
6、一键测试回程 Ping 值工具:mPing
1 2 |
wget https://raw.githubusercontent.com/helloxz/mping/master/mping.sh bash mping.sh |
7、Serverreview-benchmark 综合评测工具
这是一个老外写的 VPS 主机综合评测工具,主要评测的项目有 VPS 主机磁盘 IO、内存读写、CPU 性能以及 Benchmark 性能,还有美国、欧洲、亚洲等不同节点的下载速度。主页:https://github.com/sayem314/serverreview-benchmark
脚本使用使用方法
1 2 3 4 5 6 |
#简略版 yum install curl -y curl -LsO git.io/bench.sh; chmod x bench.sh && ./bench.sh -a share #完整版 yum install curl -y curl -LsO git.io/bench.sh; chmod x bench.sh && ./bench.sh -a share |
一、VPS 速度测试工具
在线测试工具。使用在线测试工具,可以方便得到服务器的响应时间,这一招对于国外的 VPS 特别有效果。以下是搜集整理的实用在线网站速度测试工具网站:
这几个在线测速工具各有各的优缺点,推荐使用 ipip.net 测试服务器 IP 和路由追踪,用 17ce.com 测试网页加载速度,用 ping.chinaz.com 用国内不同地方的 Ping 值。
本地测试软件。这里推荐使用 WinMTR,这是一款方便易用的路由跟踪工具。该软件可以帮助用户直接查看各个节点的响应时间及丢包率,非常适合 windows 下客户做路由追踪及 PING 进行测试。
下载地址:https://www.ucblog.net/wzfou/WinMTR-CN-IP.zip
项目主页:https://github.com/oott123/WinMTR
带地图版:https://cdn.ipip.net/17mon/besttrace.exe
启用 WinMTR,点击可以更新 IP 地址。
相关的参数说明如下:
Hostname:到目的服务器要经过的每个主机 IP 或名称
Nr:经过节点的数量;以上图百度为例子:一共要经过 10 个节点,其中第一个是出口的路由器
Loss%:ping 数据包回复失败的百分比;藉此判断,那个节点(线路)出现故障,是服务器所在机房还是国际路由干路
Sent:已传送的数据包数量
Recv:成功接收的数据包数量
Best:回应时间的最小值
Avrg:平均回应时间
Worst:回应时间的最大值
Last:最后一个数据包的回应时间
PS:2017 年 9 月 12 日更新,Superspeed.sh 一键测试服务器到国内的速度脚本:
1 2 3 |
wget https://raw.githubusercontent.com/oooldking/script/master/superspeed.sh chmod x superspeed.sh ./superspeed.sh |
二、VPS 性能测试工具
手动检测命令。直接使用命令:cat /proc/cpuinfo 或者 lscpu,你就可以看到你使用的 VPS 的 CPU 配置如何。
检测出来的 CPU,你也可以进入这个网站:http://www.cpubenchmark.net/cpu_list.php,查看 CPU 的性能到底排行多少位,至少让自己心里有个数。
另外一个手动命令测试磁盘 IO:
dd if=/dev/zero of=test bs=64k count=4k oflag=dsync
手动命令测试 VPS 网络:
wget http://cachefly.cachefly.net/100mb.test
一键检测脚本。这里有一个一键检测 VPS 的 CPU、内存、负载、IO 读写、机房带宽等。
1 2 3 4 5 6 7 8 9 10 11 12 |
命令 1: wget -qO- bench.sh | bash 或者 curl -Lso- bench.sh | bash 命令 2: wget -qO- 86.re/bench.sh | bash 或者 curl -so- 86.re/bench.sh | bash 备注: bench.sh 既是脚本名,同时又是域名。如果以上失效,请使用以下地址下载再执行脚本: 下载地址: https://github.com/teddysun/across/blob/master/bench.sh |
PS:2017 年 9 月 27 日更新,SuperBench.sh 可以看作 bench.sh 强化版,新增 Virt 检测服务器类型参数,常见 openvz,kvm,独服都能检测出来。同时整合上面的 Superspeed.sh 一键测试服务器到国内的速度脚本:
wget -qO- https://raw.githubusercontent.com/oooldking/script/master/superbench.sh | bash
或者
curl -Lso- https://raw.githubusercontent.com/oooldking/script/master/superbench.sh | bash
运行一键检测脚本后,会显示当前测试的各种系统信息,取自世界多处的知名数据中心的测试点进行下载速度测试,支持 IPv6 下载测速,IO 测试三次并显示平均值,由于测试点都在国外,所以国内的服务器下载速度测试可能会失败。
一键带宽检测工具:speedtest-cli,官网:https://github.com/sivel/speedtest-cli,安装命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
sudo apt-get update apt-get install python-pip sudo pip install speedtest-cli 使用方法: speedtest-cli #后面也可以接以下参数: -h, --help show this help message and exit --share 分享你的网速,该命令会在 speedtest 网站上生成网速测试结果的图片。 --simple Suppress verbose output, only show basic information --list 根据距离显示 speedtest.net 的测试服务器列表。 --server=SERVER 指定列表中 id 的服务器来做测试。 --mini=MINI URL of the Speedtest Mini server --source=SOURCE Source ip address to bind to --version Show the version number and exit |
VPS 性能综合跑分工具。UnixBench是一个类 unix 系(Unix,BSD,Linux)统下的性能测试工具,一个开源工具,被广泛用与测试 linux 系统主机的性能。Unixbench 的主要测试项目有:系统调用、读写、进程、图形化测试、2D、3D、管道、运算、C 库等系统基准性能提供测试数据。命令如下:
1 2 3 |
wget --no-check-certificate https://github.com/teddysun/across/raw/master/unixbench.sh chmod x unixbench.sh ./unixbench.sh |
测试项目说明如下:
Dhrystone 2 using register variables
此项用于测试 string handling,因为没有浮点操作,所以深受软件和硬件设计(hardware and software design)、编译和链接(compiler and linker options)、代码优化(code optimazaton)、对内存的 cache(cache memory)、等待状态(wait states)、整数数据类型(integer data types)的影响。
Double-Precision Whetstone
这一项测试浮点数操作的速度和效率。这一测试包括几个模块,每个模块都包括一组用于科学计算的操作。覆盖面很广的一系列 c 函数:sin,cos,sqrt,exp,log 被用于整数和浮点数的数学运算、数组访问、条件分支(conditional branch)和程序调用。此测试同时测试了整数和浮点数算术运算。
Execl Throughput
此测试考察每秒钟可以执行的 execl 系统调用的次数。 execl 系统调用是 exec 函数族的一员。它和其他一些与之相似的命令一样是 execve() 函数的前端。
File copy
测试从一个文件向另外一个文件传输数据的速率。每次测试使用不同大小的缓冲区。这一针对文件 read、write、copy 操作的测试统计规定时间(默认是 10s)内的文件 read、write、copy 操作次数。
Pipe Throughput
管道(pipe)是进程间交流的最简单方式,这里的 Pipe throughtput 指的是一秒钟内一个进程可以向一个管道写 512 字节数据然后再读回的次数。需要注意的是,pipe throughtput 在实际编程中没有对应的真实存在。
Pipe-based Context Switching
这个测试两个进程(每秒钟)通过一个管道交换一个不断增长的整数的次数。这一点很向现实编程中的一些应用,这个测试程序首先创建一个子进程,再和这个子进程进行双向的管道传输。
Process Creation
测试每秒钟一个进程可以创建子进程然后收回子进程的次数(子进程一定立即退出)。process creation 的关注点是新进程进程控制块(process control block)的创建和内存分配,即一针见血地关注内存带宽。一般说来,这个测试被用于对操作系统进程创建这一系统调用的不同实现的比较。
System Call Overhead
测试进入和离开操作系统内核的代价,即一次系统调用的代价。它利用一个反复地调用 getpid 函数的小程序达到此目的。
Shell Scripts
测试一秒钟内一个进程可以并发地开始一个 shell 脚本的 n 个拷贝的次数,n 一般取值 1,2,4,8。(我在测试时取 1, 8)。这个脚本对一个数据文件进行一系列的变形操作(transformation)。
根据你的 VPS 性能不同,一般需要半个小时以上才会得到跑分结果,分数越高就表示性能越好。
这里再提供另外一个 VPS 速度与性能综合测试工具,用它可以一键测试 VPS 主机的基本配置、机房带宽、Ping 值、IO 性能、UnixBench 跑分等,测试过程花费的时间比较长,需要耐心等待。
1 2 3 4 5 6 |
#普通模式(测试机器配置, IO ,带宽和全国 ping 值): wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/91yuntest/master/test_91yun.sh && bash test_91yun.sh 简单模式(测试机器配置, IO ,带宽和全国 ping 值): wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/91yuntest/master/test_91yun.sh && bash test_91yun.sh s 完全模式(测试机器配置, IO ,带宽、全国 ping 值、unixbench 跑分): wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/91yuntest/master/test_91yun.sh && bash test_91yun.sh a |
三、VPS 主机真伪检测
检测 VPS 真实内存。首先用命令查看真实的内存:free -m,接着切换至内存目录:cd /dev/shm,然后进行数据写入,标识 count=100 为写入 100M,你可以修改为主机商标注的内存上限一点点:
1 2 3 |
dd if=/dev/zero of=./memtest bs=1M count=100 #注意完成后,执行删除: rm ./memtest |
一旦出现错误:dd: error writing ‘./memtest’: No space left on device,就说明内存大小低于我们测试的数值,你可以继续降低数值,直到得到真实的内存。
检测 VPS 虚拟技术。命令如下:
1 |
wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/code/master/vm_check.sh && bash vm_check.sh |
测试结果会显示是 KVM、Xen 还是 OpenVZ。
自建 speedtest 测试。这个适合 VPS 主机商,方便给客户测试从服务器到用户本地的下载速度。
项目主页:https://github.com/adolfintel/speedtest
修改版本:https://www.ucblog.net/wzfou/speedtest-lite.zip
将程序上传到服务器上,客户打开后点击就可以测试得到服务器的速度了。
四、总结
UnixBench 性能跑分受版本影响较大。UnixBench 目前有不同的版本,而网上不少的版本也是经过人工修改过的,可能测试的项目不同导致的结果也会不同。大家在测试时记得找一个参照对比。
IO 读写速度受母机的影响比较大。有一些超售的服务器,由于用户众多,IO 速度很慢,像这样的就要小心你的“邻居”了。使用一键脚本检测时,如果用在国内的 VPS 时,在网络测速中会出现卡死的情
转载请注明:国外VPS » #VPS教程#VPS测评性能教程