admin管理员组

文章数量:1638234

Unixbench工具介绍

UnixBench是一个类unix系(Unix,BSD,Linux)统下的开源性能测试工具(即曾经的BYTE基准测试),被广泛用与测试linux系统主机的性能。Unixbench的主要测试项目有:系统调用、读写、进程、图形化测试、2D、3D、管道、运算、C库等系统基准性能提供测试数据。

UnixBench中包含了许多测试用例,如:文件复制、管道的吞吐量、上下文切换、进程创建、系统调用、基本的2D和3D图形测试,等等。

测试准备工作:

  • 下载地址: https://github/kdlucas/byte-unixbench
  • BIOS配置
  1. 超线程关闭  System BIOS Settings--> Processor Setting--> Logical Processor: Disabled
  2. 系统设置高性能模式: System BIOS Settings --> System Profile --> System Profile: Performance
  • 配置本地yum源后安装相应编译包

    yum -y install gcc gcc-c autoconf gcc-c++ time 

   yum groupinstall "Development Tools" -y

  • 将下载的unixbench-5.1.2.tar.gz 进行解压

tar -zxvf unixbench-5.1.2.tar.gz

cd unixbench-5.1.2

  • Makefile中注释掉图形图像测试

# GRAPHICS TESTS: Uncomment the definition of "GRAPHIC_TESTS" to enable
# the building of the graphics benchmarks.  This will require the
# X11 libraries on your system.
#
# Comment the line out to disable these tests.
#GRAPHIC_TESTS = defined

  • 执行#make

运行测试 /Run  -i 3 -c 1 -c 16  等待时间较长

-i:迭代次数,默认为10,这里选择3

-c 1 -c 16:将运行单个流式传输,然后运行16流式传输。16为逻辑Cpu核数

 

得出测试结果  (越大越好)

 
 

单进程: 1487.9

多进程:  7207.4


结果说明:

此测试的目的是对类Unix 系统提供一个基本的性能指示,很多测试用于系统性能的不同方面,这些测试的结果是一个指数值(index value,如520),这个值是测试系统的测试结果与一个基线系统测试结果比较得到的指数值,这样比原始值更容易得到参考价值,测试集合里面所有的测试得到的指数值结合起来得到整个系统的指数值。

源于1995 年,基线系统是“George”,一个工作站:SPARCstation 20‐61,128MB RAM,Solaris2.3,此系统的指数值被设定为10,所以,如果一个系统的最后结果分数为520,意思是指此系统比基线系统运行快52 倍。

测试得分项说明

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)的影响。

 

Double-Precision Whetstone

这一项测试浮点数操作的速度和效率。这一测试包括几个模块,每个模块都包括一组用于科学计算的操作。覆盖面很广的一系列 c 函数:sin,cos,sqrt,exp,log 被用于整数和浮点数的数学运算、数组访问、条件分支(conditional branch)和程序调用。此测试同时测试了整数和浮点数算术运算。

 

Execl Throughput

此测试考察每秒钟可以执行的 execl 系统调用的次数。 execl 系统调用是 exec 函数族的一员。它和其他一些与之相似的命令一样是 execve() 函数的前端。

 

File copy

测试从一个文件向另外一个文件传输数据的速率。每次测试使用不同大小的缓冲区。这一针对文件 read、write、copy 操作的测试统计规定时间(默认是 10s)内的文件 read、write、copy 操作次数。

 

Pipe Throughput

管道(pipe)是进程间交流的最简单方式,这里的 Pipe throughtput 指的是一秒钟内一个进程可以向一个管道写 512 字节数据然后再读回的次数。需要注意的是,pipe throughtput 在实际编程中没有对应的真实存在。

 

Pipe-based Context Switching

这个测试两个进程(每秒钟)通过一个管道交换一个不断增长的整数的次数。这一点很向现实编程中的一些应用,这个测试程序首先创建一个子进程,再和这个子进程进行双向的管道传输。

 

Process Creation

测试每秒钟一个进程可以创建子进程然后收回子进程的次数(子进程一定立即退出)。process creation 的关注点是新进程进程控制块(process control block)的创建和内存分配,即一针见血地关注内存带宽。一般说来,这个测试被用于对操作系统进程创建这一系统调用的不同实现的比较。

 

System Call Overhead

测试进入和离开操作系统内核的代价,即一次系统调用的代价。它利用一个反复地调用 getpid 函数的小程序达到此目的。

 

Shell Scripts

测试一秒钟内一个进程可以并发地开始一个 shell 脚本的 n 个拷贝的次数,n 一般取值 1,2,4,8。(我在测试时取 1, 8)。这个脚本对一个数据文件进行一系列的变形操作(transformation)。

Run 命令格式说明:

Run [ -q | -v ] [-i <n> ] [-c <n> [-c <n> ...]]

-q                   不显示测试过程,在静默模式中运行

-v                   显示测试过程

-i<count>        迭代执行次数: min=3 max=10,默认为10

-c<n>              每次测试并行n个copies

本文标签: 测试工具性能CPUUnixBench