转自:https://blog.csdn.net/gatieme/article/details/50912910
UnixBench
unixbench
是一个用于测试unix
系统性能的工具,也是一个比较通用的benchmark
, 此测试的目的是对类Unix
系统提供一个基本的性能指示,很多测试用于系统性能的不同方面,这些测试的结果是一个指数值(index value
,如520),这个值是测试系统的测试结果与一个基线系统测试结果比较得到的指数值,这样比原始值更容易得到参考价值,测试集合里面所有的测试得到的指数值结合起来得到整个系统的指数值。
各项的测试有得分,然后有一个综合的得分,这样可以很方便的通过分数去比较。
源于1995 年,基线系统是“George”,一个工作站:SPARCstation 20‐61,128MB RAM,Solaris2.3,此系统的指数值被设定为10,所以,如果一个系统的最后结果分数为520,意思是指此系统比基线系统运行快52 倍。
UnixBench也包含一些非常简单的2D和3D图形测试。
UnixBench也支持多CPU系统的测试,默认的行为是测试两次,第一次是一个进程的测试,第二次是N份测试,N等于CPU个数。这样的设计是为了以下目标:
-
测试系统的单任务性能
-
测试系统的多任务性能
-
测试系统并行处理的能力
UnixBench一个基于系统的基准测试工具,不单纯是CPU 内存 或者磁盘测试工具。测试结果不仅仅取决于硬件,也取决于系统、开发库、甚至是编译器。
测试项目
Dhrystone测试
测试聚焦在字符串处理,没有浮点运算操作。这个测试用于测试链接器编译、代码优化、内存缓存、等待状态、整数数据类型等,硬件和软件设计都会非常大的影响测试结果。
Whetstone 测试
这项测试项目用于测试浮点运算效率和速度。这项测试项目包含若干个科学计算的典型性能模块,包含大量的C语言函数,sin cos sqrt exp和日志以及使用整数和浮点的数学操作。包含数组访问、条件分支和过程调用。
Execl Throughput(execl 吞吐,这里的execl是类unix系统非常重要的函数,非办公软件的execl)测试
这项测试测试每秒execl函数调用次数。execl是 exec函数家族的一部分,使用新的图形处理代替当前的图形处理。有许多命令和前端的execve()函数命令非常相似。
File Copy测试
这项测试衡量文件数据从一个文件被传输到另外一个,使用大量的缓存。包括文件的读、写、复制测试,测试指标是一定时间内(默认是10秒)被重写、读、复制的字符数量。
Pipe Throughput(管道吞吐)测试
pipe是简单的进程之间的通讯。管道吞吐测试是测试在一秒钟一个进程写512比特到一个管道中并且读回来的次数。管道吞吐测试和实际编程有差距。
Pipe-based Context Switching (基于管道的上下文交互)测试
这项测试衡量两个进程通过管道交换和整数倍的增加吞吐的次数。基于管道的上下文切换和真实程序很类似。测试程序产生一个双向管道通讯的子线程。
Process Creation(进程创建)测试
这项测试衡量一个进程能产生子线程并且立即退出的次数。新进程真的创建进程阻塞和内存占用,所以测试程序直接使用内存带宽。这项测试用于典型的比较大量的操作系统进程创建操作。
Shell Scripts测试
shell脚本测试用于衡量在一分钟内,一个进程可以启动并停止shell脚本的次数,通常会测试1,2, 3, 4, 8 个shell脚本的共同拷贝,shell脚本是一套转化数据文件的脚本。
System Call Overhead (系统调用消耗)测试
这项测试衡量进入和离开系统内核的消耗,例如,系统调用的消耗。程序简单重复的执行getpid调用(返回调用的进程id)。消耗的指标是调用进入和离开内核的执行时间。
Graphical Tests(图形)测试
由”ubgears”程序组成,测试非常粗的2D和3D图形性能,尤其是3D测试非常有限。测试结果和硬件,系统合适的驱动关系很大。
安装
Unixbench-5.1.2.tar.gz下载地址:http://soft.vpser.net/test/unixbench/
tar -xzvf unixbench-5.1.2.tar.gz
cd unixbench-5.1.2
- 1
- 2
- 3
阅读README文件,得知如果不需要进行图形测试或者不在图形化界面下测试,则将Makefile文件中GRAPHICS_TEST = defined注释掉,我的是在46行。
make
- 1
使用
运行./Run
然后等待程序进行测试即可,这个过程可能比较漫长,请耐心等待
对于运行结果,说明如下:
看到run文件后,输入 ./Run 执行命令对VPS进行性能测试就开始了,最后跑完将会有一个分数在底部出现。通常情况下1000分以上的VPS是性能较好的。
测试项目 | 项目说明 | 基准线 |
---|---|---|
Dhrystone 2 using register variables | 测试 string handling | 116700.0lps |
Double-Precision Whetstone | 测试浮点数操作的速度和效率 | 55.0MWIPS |
Execl Throughput | 此测试考察每秒钟可以执行的 execl 系统调用的次数 | 43.0lps |
File Copy 1024 bufsize 2000 maxblocks | 测试从一个文件向另外一个文件传输数据的速率 | 3960.0KBps |
File Copy 256 bufsize 500 maxblocks | 测试从一个文件向另外一个文件传输数据的速率。 | 1655.0KBps |
File Read 4096 bufsize 8000 maxblocks | 测试从一个文件向另外一个文件传输数据的速率。 | 5800.0KBps |
Pipe-based Context Switching | 测试两个进程(每秒钟)通过一个管道交换一个不断增长的整数的次数 | 12440.0lps |
Pipe Throughput | 一秒钟内一个进程可以向一个管道写 512 字节数据然后再读回的次数 | 4000.0lps |
Process Creation | 测试每秒钟一个进程可以创建子进程然后收回子进程的次数(子进程一定立即退出)。 | 126.0lps |
Shell Scripts (8 concurrent) | 测试一秒钟内一个进程可以并发地开始一个shell 脚本的 n 个拷贝的次数,n 一般取值1,2,4,8. | 42.4lpm |
System Call Overhead | 测试进入和离开操作系统内核的代价,即一次系统调用的代价。 | 6.0lpm |
Score