一、Unixbench测试说明
UnixBench 是一款开源的测试 unix 系统基本性能的工具,是比较通用的测试VPS性能的工具。UnixBench会执行一系列的测试,包括2D和3D图形系统的性能衡量,测试的结果不仅仅只是CPU,内存,或者磁盘为基准,还取决于硬件,操作系统版本,编译器. 测试系统各个方面一系列的性能,然后将每个测试结果和一个基准值进行比较,得到一个索引值,所有测试项目的索引值结合在一起形成一个测试分数值。
二、 安装前准备
安装前需要先下载:gcc、gcc-c++、gcc-gfortran、cmake、make、libX11-devel -y、mesa-libGL-devel -y、SDL-devel
# yum install gcc
# yum install gcc-c++
# yum install gcc-gfortran
# yum install cmake
# yum install make
# yum install libX11-devel -y
# yum install mesa-libGL-devel -y
# yum install SDL-devel -y
三、Unixbench安装
在root下新建unixbench目录,将unixbench安装包放入/root/unixbench目录
# mkdir /root/unixbench
# cd /root/unixbench
# tar -xzvf unixbench-5.1.2.tar.gz
打开Makefile文件,找到下面两行,进行修改
# cd /root/unixbench/unixbench-5.1.2
# vim Makefile
在 $(GL_LIBS)前添加 -lm
然后可以直接进行运行,系统会自行进行编译并运行,测试结果分数越高性能越好。
# ./Run 测试默认以单线程运行,如需多线程需要加入参数 -c指定核心数量,但默认unixbench只支持到16cores,可以通过修改参数,取消此限制
# vim Run
修改内容为核心数量。
测试单线程结果如下:
四、测试项说明
1: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)的影响。
2:Double-Precision Whetstone 这一项测试浮点数操作的速度和效率。这一测试包括几个模块,每个模块都包括一组用于科学计算的操作。覆盖面很广的一系列 c 函数:sin,cos,sqrt,exp,log 被用于整数和浮点数的数学运算、数组访问、条件分支(conditional branch)和程序调用。此测试同时测试了整数和浮点数算术运算。
3:Execl Throughput此测试考察每秒钟可以执行的 execl 系统调用的次数。execl 系统调用是 exec 函数族的一员。它和其他一些与之相似的命令一样是 execve() 函数的前端。
4:File copy 测试从一个文件向另外一个文件传输数据的速率。每次测试使用不同大小的缓冲区。这一针对文件 read、write、copy 操作的测试统计规定时间(默认是 10s)内的文件 read、write、copy 操作次数。
5:Pipe Throughput 管道(pipe)是进程间交流的最简单方式,这里的 Pipe throughtput 指的是一秒钟内一个进程可以向一个管道写 512 字节数据然后再读回的次数。
6:Pipe-based Context Switching 这个测试两个进程(每秒钟)通过一个管道交换一个不断增长的整数的次数。这一点很向现实编程中的一些应用,这个测试程序首先创建一个子进程,再和这个子进程进行双向的管道传输。
7:Process Creation 测试每秒钟一个进程可以创建子进程然后收回子进程的次数(子进程一定立即退出)。 process creation 的关注点是新进程进程控制块(process control block)的创建和内存分配,即一针见血地关注内存带宽。一般说来,这个测试被用于对操作系统进程创建这一系统调用的不同实现的比较。
8:System Call Overhead 测试进入和离开操作系统内核的代价,即一次系统调用的代价。它利用一个反复地 调用 getpid 函数的小程序达到此目的。
9:Shell Scripts:测试一秒钟内一个进程可以并发地开始一个 shell 脚本的 n 个拷贝的次数,n 一般取值 1,2,4,8。这个脚本对一个数据文件进行一系列的变形操作(transformation)。