使用 Unixbench5 进行linux系统服务器性能综合测试
1.简介
Unixbench是一个类unix系(Unix,BSD,Linux)统下的性能测试工具,一个开源工具,被广泛用与测试linux系统主机的性能,简称UB。Unixbench的主要测试项目有:系统调用、读写、进程、图形化测试、2D、3D、管道、运算、C库等系统基准性能提供测试数据。
测试项目:
Dhrystone
这个基准测试使用来计算和比较计算机性能的。由于没有浮点操作,这个测试主要集中在字符串处理上。这个测试深受以下因素的影响:硬件和软件设计,编译程序和链接程序选项,代码优化 ,高速缓冲存储器, 等待状态和整数数据类型。
Whetstone
这个测试测量浮点运算速度和效率。这个测试包含几个模块,这些模块被认为是由在典型运用在科学应用中的操作组成的混合体。 各种各样的C函数,包括sin、cos、sqrt、exp和log还有整形,浮点算术操作、数组访问、条件转移和过程调用,都使用了。 整数和浮点算术,在这个测试中都会计算。
Execl Throughput
这个测试计算每秒钟出现的execl调用数。Execl是 exec 函数家族的一部分。它用一个新的进程映像更新当前的进程映像。 它和许多其他相似的命令都是execve()的前端程序。
File Copy
这个测试测量使用不同的缓冲区大小时,数据可以从一个文件被传输到另一个的速率。文件的读写复制测试可以获得在指定时间内(默认为10秒)能够读、写、复制的字符数目。
Pipe Throughput
管道是进程间通信最简单的方式之一。管道吞吐量指的是每秒中,一个进程能将512个字节数据写入管道和从管道中回读它们的次数。这个测试在真实的程序设计中并没有对应物。
Pipe-based Context Switching
这个测试是计算两个进程通过管道交换一个增长的整数的次数。基于管道的上下文切换测试更像一个真实的应用程序。这个测试产生一个可以用来继续双向管对话的子进程。
Process Creation
这个测试计算一个进程派生和收获一个马上退出的子进程的次数。由于进程创建涉及创建进程控制块和为新的进程分配内存,因此这项测试直接取决于内存带宽。这个测试一般地会用于比较各种各样的操作系统进程创建调用的执行。
Shell Scripts
这个shells scripts测试测量每秒进程能够启动和收获一组1,2,4,8个shell脚本程序的并行的拷贝的次数。The shells scripts test measures the number of times per minute a process can start and reap a set of one, two, four and eight concurrent copies of a shell scripts where the shell script. applies a series of transformation to a data file.
System Call Overhead
这个测试是估计进入和离开操作系统内核的开销。例如执行一个系统调用的开销。它由一个简单的系统组成,这个系统重复的调用getid系统调用,getid返回调用进程的进程IS号。这个测试是用执行这些调用的时间来估算进入和离开内核的开销。
Graphical Tests
这个测试提供了2D,3D的图形化测试。报告性能不仅依赖于硬件,还与你的系统是否对硬件有合适的驱动程序有关 。
安装
yum -y install gcc gcc-c autoconf gcc-c++ time
wget http://www.ctohome.com/linux-vps-pack/unixbench-5.1.2.tar.gz
tar xzf unixbench-5.1.2.tar.gz
cd unixbench-5.1.2
默认unixbench只支持到16cores,修改参数,取消此限制
sed -i "s/GRAPHIC_TESTS = defined/#GRAPHIC_TESTS = defined/g" ./Makefile
make;
sed -i "s/"System Benchmarks", 'maxCopies' => 16/"System Benchmarks", 'maxCopies' => 0/" Run
sed -i 's/$copies > $maxCopies/$maxCopies > 0 && $copies > $maxCopies/' Run
for i in `seq 1 5`;do ./Run ;done