1. UnixBench

UnixBench 是测试类 Unix 系统性能的老牌工具,也是常用的基准测试工具。它会执行 11 个单项测试,包括字符串处理、浮点运算效率、 文件数据传输、管道吞吐等,然后将结果与一个基准系统进行比较,得到一个指数值。指数值越高,性能越好。

最终的得分比单个测试的结果根据参考价值,而且也方便对服务器进行比较。

在安装 UnixBench 之前,要先准备好相关的依赖。请执行:

yum install perl-Time-HiRes libx11-dev libgl1-mesa-dev libxext-dev perl perl-modules make gcc 下载安装包,然后按下面的提示操作。官方的源在 googlecode 上,国内访问不便,我已经将文件上传到对象存储服务。

wget http://codingpy-1252715393.cosgz.myqcloud.com/archive/UnixBench5.1.3.tgz
tar xvf UnixBench5.1.3.tgz
cd UnixBench
make

运行 make 之前,确保将 Makefile 文件中 GRAPHICS_TEST = defined 行被注释掉,因为我们是在服务器端进行测试,不需要做 2D/3D 图形测试。

最后,执行:

./Run 如果一切正常,应该会出现类似下面的文字: UnixBench 运行

UnixBench 测试的运行时间比较长,期间可以离开去干别的事情。

除了直接在命令行输出测试结果之外(如下图),还会在 result 目录下生成一个 HTML 格式的报告,可以将其拷贝至本地。

UnixBench 测试结果

一般来说,得分在 1000 以上的云服务器就算还不错的。

2. IOPing

磁盘性能的另一个指标是延迟。可以通过 IOPing 工具进行测试。IOPing 会运行指定数量的磁盘 I/O 请求,并测试响应的时间。输出结果测试使用 ping 命令测试网络延迟的输出。

操作如下提示安装 IOPing:

yum install ioping

然后通过下面的命令运行测试:

ioping -c 100 .

-c 100选项是ioping将要编号的请求。 该程序也作为文件和/或设备检查的参数。 在这种情况下,实际的工作目录。 输出结果类似下面这样,我们取其中 avg 对应的值:

4 KiB <<< . (xfs /dev/dm-2): request=1 time=16.3 ms (warmup) 
4 KiB <<< . (xfs /dev/dm-2): request=2 time=253.3 us 
4 KiB <<< . (xfs /dev/dm-2): request=3 time=284.0 ms 
… 4 KiB <<< . (xfs /dev/dm-2): request=96 time=175.6 us (fast) 
4 KiB <<< . (xfs /dev/dm-2): request=97 time=258.7 us (fast 
4 KiB <<< . (xfs /dev/dm-2): request=98 time=277.6 us (fast) 
4 KiB <<< . (xfs /dev/dm-2): request=99 time=242.3 us (fast) 
4 KiB <<< . (xfs /dev/dm-2): request=100 time=36.1 ms (fast) 
--- . (xfs /dev/dm-2) ioping statistics  ---
99个请求在3.99秒完成,396 KiB读取,24 iops,99.3 KiB / s 
在1.65分钟,400 KiB,1 iops,4.04 KiB / s中产生100个请求 
min / avg / max / mdev = 163.5 us / 40.3ms / 760.0ms / 118.5ms

请求响应时间越低,说明磁盘性能越好。