使用 UnixBench 测试 VPS 硬件资源性能

Eric 教程 1,763 次浏览 评论已关闭

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
UnixBench 其它参数(通过追加参数改变测试方式)
./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 以上才可以说性能比较好的。

UnixBench 性能测试
UnixBench 性能测试结果

上面是笔者一台 KVM 小鸡测试结果。如果你机器是多核 CPU,那会有两个评分,一个是单进程跑,另一个是多进程跑。

类似 UnixBench 的基准评测工具还有不少,比如 HardInfo 和 Sysbench,有兴趣的朋友不妨去了解。