Unixbench一个基于系统的基准测试工具,不单纯是CPU 内存 或者磁盘测试工具。测试结果不仅仅取决于硬件,也取决于系统、开发库、甚至是编译器。Unixbench是一个老牌的性能测试工具,下载主要是针对Unixbench进行综合性能以及使用Unixbench进行2D性能测试的讲解。
方式:在github下载UnixBench;网址:www.github.com
三、使用方法
1 2 3 | tar -zxvf UnixBench5. 1.3 .tgz #解压(注意不要有中文名目录) cd UnixBench/ #进入目录 make #安装 |
设置调频模式为performance
1 | cpupower frequency- set –g performance |
步骤一:Unixbench综合测试,执行如下命令
1 | ./Run > /tmp/Unix.txt |
#执行测试并将测试报告保存到/tmp下新建的Unxi.txt文本中
#或者直接执行命令./Run ,结果可在result目录下进行查看,测试时间一般为十几二十分钟
步骤二:Unixbench 2D性能测试,修改Run文件中的2D参数,注释掉第141行ubgears测试项并保存。
1 | vim /home/Unixbench/Run |
#文件存放在/home目录下Unixbenxh中,根据个人文件存放路径进行修改
问题一:如果跑不出多线程数据,修改2D核数,在110行,根据个人PC电脑进行修改。
执行2D性能测试,必须在图形化界面下执行,
1 | ./Run graphics #执行2D性能测试,必须在图形化界面下执行 |
问题二:如果调用不出窗口可能问题如下:
1、可能是缺少环境变量参数,执行代码添加环境参数:
1 | export DISPLAY=: 0.0 |
2、可能是内存进程未存释放,清理释放;命令如下:
1 | echo 3 >/proc/sys/vm/drop_caches |
四、性能分数查看
测试完分数会输出到窗口,并且在/home/Unixbench/results目录下会输出报告。下图为测试某台PC机型综合分数,用浏览器进行打开查看,
第一列表最后分值为单线程,第二分值为多线程。
2D测试数同综合分值查看方式一致。
【测试得分项说明】graphic的测试项(大多数VPS都是没有显卡或者是集显,所以图像性能无需测试),运行10-30分钟后(根据CPU内核数量,运算时间不等)得出分数,越高越好。
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 字节数据然后再读回的次数。需要注意的是,pipe throughtput 在实际编程 中没有对应的真实存在。
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。(我在测试时取 1, 8)。这个脚本对一个数据文件进行一系列的变形操作(transformation)。