使用 UnixBench 测试 VPS 硬件资源性能
UnixBench 是经典基准测试工具,可以检测系统处理任务时的性能表现(评分不单取决 CPU、内存、磁盘等硬件,也包括操作系统、驱动,甚至编译器)。UnixBench 测试结果与预设基线系统得分进行比较,从而得出表示性能的数值评分,分数越高性能越好。
UnixBench 下载编译
1. 下载 UnixBench 源代码。最新版本是 5.1.3 (好长时间没更新)。
wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/byte-unixbench/UnixBench5.1.3.tgz
如果 Google Code 下载地址用不了,可以更换 Github 地址。
2. 下载解压并进入文件目录,运行编译。
tar -zxvf UnixBench5.1.3.tgz && cd UnixBench make all
补充:如果编译过程提示下面错误,说明没有安装 GCC 编译器。
make: gcc: Command not found make: *** [pgms/arithoh] Error 127
安装 GCC 编译器。
# RHEL & CentOS yum install gcc # Debian & Ubuntu apt-get install gcc
3. UnixBench 默认不测试显卡性能。如果 Linux 桌面环境要测试,编译前打开目录下的 Makefile
文件。找到 47 行,取消里面的 GRAPHIC_TESTS = defined
参数注释。
UnixBench 运行测试
运行编译后,在目录下运行 ./Run
命令即可开始测试,整个过程大概需时二十来分钟。为避免 SSH 连线超时断开,建议开个 screen
再测。
如果需测试图像性能则用 ./Run gindex
命令(测试时间大约会增加三分之二)。
如果运行命令提示下面错误,表示系统没有安装 perl。
-bash: ./Run: /usr/bin/perl: bad interpreter: No such file or directory
安装 perl 组件。
# RHEL & CentOS yum install perl # Debian & Ubuntu apt-get install perl
./Run -q |
以安静模式运行测试,之后可以文件方式查看结果(下文会提及) |
./Run -v |
以详细模式运行测试,实时打印测试内容到屏幕 |
./Run -i <count> |
-i <count> 为每个项目设置重复测试次数,最少为1,默认是10 |
./Run -c <n> |
为每个项目并行运行 <n> 个副本(图像性能测试不支持多副本运行) |
./Run -c <n> <...> |
<…> 指定测试模式(包含哪些测试项目),默认为标准模式“index”。更多模式查看 USAGE 文件说明 |
UnixBench 结果分析
UnixBench 评测结果除了屏幕打印显示,还可以查看评测报告文件。在 results
目录下,文件名格式为“主机名 – 时间戳”,有 html 和 log 两个版本。
UnixBench 通过执行多个不同类型任务来评估机器性能,包含测试项目如下表格。
测试项目 | 测试内容 |
---|---|
Dhrystone | 该测试侧重字符串处理,没有浮点运算。结果受硬件设计和软件优化影响大 |
Whetstone | 测试浮点运算速度和效率,其中包含几个典型的科学计算性能模块 |
Execl Throughput | 测量 execl 每秒可执行的系统调用次数 |
File Copy | 测试数据从一个文件传输到另一个文件的传输速率 |
Pipe Throughput | 测试每秒一个进程将 512 字节写入管道并读取的次数 |
Pipe-based Context Switching | 测试每秒两个进程通过一个管道交换一个不断增长的整数次数 |
Process Creation | 测试每秒一个进程可以创建及收回子进程的次数 |
Shell Scripts | 测试每秒进程可以并发获取一个 shell 脚本的 n 个副本的次数,n 取值为1 2 4 8 |
System Call Overhead | 测试进入和离开操作系统内核的开销,即执行系统调用的消耗 |
Graphical Tests | 测试显卡 2D 和 3D 图形的大概性能,结果很视乎系统是否安装适当的驱动程序 |
正如开头所说,UnixBench根据基线系统产生评分数据。预设基线系统名为“George”,是一台 SPARCstation 20-61 模型,拥有 128MB 内存,SPARC 存储阵列和 Solaris 2.3(各测试项基线分可查看 pgms/index.base
文件)。评级标准分为 10.0,如果检测评分为 520,则表示比模型快 52 倍。
按现在主流的 VPS 配置,600 分以上算普通级别,1000 以上才可以说性能比较好的。

上面是笔者一台 KVM 小鸡测试结果。如果你机器是多核 CPU,那会有两个评分,一个是单进程跑,另一个是多进程跑。
类似 UnixBench 的基准评测工具还有不少,比如 HardInfo 和 Sysbench,有兴趣的朋友不妨去了解。