unixbench跑分基准测试工具
UnixBench是一个类unix系(Unix,BSD,Linux)统下的性能测试工具,一个开源工具,被广泛用与测试linux系统主机的性能。Unixbench的主要测试项目有:系统调用、读写、进程、图形化测试、2D、
3D、管道、运算、C库等系统基准性能提供测试数据。
最新版本UnixBench5.1.3,包含system和graphic测试,如果你需要测试graphic,则需要修改Makefile,不要注释掉”GRAPHIC_TESTS = defined”,同时需要系统提供x11perf命令gl_glibs库。
一、安装使用
下面的脚本使用了最新版UnixBench5.1.3来测试,注释了关于graphic的测试项(大多数VPS都是没有显卡或者是集显,所以图像性能无需测试),运行10-30分钟后(根据CPU内核数量,运算时间不等)得出分数,越高越好。
1#! /bin/bash
2PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
3export PATH
4#===============================================================================================
5# Description: Unixbench for Test
6#===============================================================================================
7# Create new soft download dir
8mkdir -p /opt/unixbench;
9cd /opt/unixbench;
10# Download UnixBench5.1.3
11if [ -s UnixBench5.1.3.tgz ]; then
12 echo "UnixBench5.1.3.tgz [found]"
13else
14 echo "UnixBench5.1.3.tgz not found!!!download now......"
15 if ! wget -c http://byte-unixbench.googlecode.com/files/UnixBench5.1.3.tgz;then
16 echo "Failed to download UnixBench5.1.3.tgz,please download it to "/opt/unixbench" directory manually and rerun the install script."
17 exit 1
18 fi
19fi
20tar -xzf UnixBench5.1.3.tgz;
21cd UnixBench;
22yum -y install gcc gcc-c autoconf gcc-c++ time perl-Time-HiRes
23#Run unixbench
24sed -i "s/GRAPHIC_TESTS = defined/#GRAPHIC_TESTS = defined/g" ./Makefile
25make;
26./Run;
27echo '';
28echo '';
29echo '';
30echo "======= Script description and score comparison completed! ======= ";
31echo '';
32echo '';
33echo '';
上面的脚本包含了下载安装和自动运行 。目前该脚本我已经放到我的github项目上面,可以直接wget下载执行。
1#wget https://raw.githubusercontent.com/361way/unixbench/master/unixbench.sh
2#sh unixbench.sh
二、测试结果
执行后返回的测试结果类似如下:
1========================================================================
2 BYTE UNIX Benchmarks (Version 5.1.3)
3 System: localhost.localdomain: GNU/Linux
4 OS: GNU/Linux -- 2.6.32-431.17.1.el6.x86_64 -- #1 SMP Wed May 7 23:32:49 UTC 2014
5 Machine: x86_64 (x86_64)
6 Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
7 CPU 0: Intel(R) Xeon(R) CPU E5504 @ 2.00GHz (4000.1 bogomips)
8 Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
9 CPU 1: Intel(R) Xeon(R) CPU E5504 @ 2.00GHz (4000.1 bogomips)
10 Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
11 CPU 2: Intel(R) Xeon(R) CPU E5504 @ 2.00GHz (4000.1 bogomips)
12 Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
13 CPU 3: Intel(R) Xeon(R) CPU E5504 @ 2.00GHz (4000.1 bogomips)
14 Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
15 23:36:57 up 4:20, 0 users, load average: 1.03, 0.65, 0.35; runlevel unknown
16------------------------------------------------------------------------
17Benchmark Run: Mon Jun 09 2014 23:36:57 - 00:04:51
184 CPUs in system; running 1 parallel copy of tests
19Dhrystone 2 using register variables 18840611.8 lps (10.0 s, 7 samples)
20Double-Precision Whetstone 2362.5 MWIPS (10.0 s, 7 samples)
21Execl Throughput 1957.2 lps (30.0 s, 2 samples)
22File Copy 1024 bufsize 2000 maxblocks 527279.8 KBps (30.0 s, 2 samples)
23File Copy 256 bufsize 500 maxblocks 154228.9 KBps (30.0 s, 2 samples)
24File Copy 4096 bufsize 8000 maxblocks 1235516.5 KBps (30.0 s, 2 samples)
25Pipe Throughput 1217279.3 lps (10.0 s, 7 samples)
26Pipe-based Context Switching 24797.2 lps (10.0 s, 7 samples)
27Process Creation 5322.7 lps (30.0 s, 2 samples)
28Shell Scripts (1 concurrent) 3299.6 lpm (60.0 s, 2 samples)
29Shell Scripts (8 concurrent) 1146.1 lpm (60.0 s, 2 samples)
30System Call Overhead 2702182.3 lps (10.0 s, 7 samples)
31System Benchmarks Index Values BASELINE RESULT INDEX
32Dhrystone 2 using register variables 116700.0 18840611.8 1614.4
33Double-Precision Whetstone 55.0 2362.5 429.6
34Execl Throughput 43.0 1957.2 455.2
35File Copy 1024 bufsize 2000 maxblocks 3960.0 527279.8 1331.5
36File Copy 256 bufsize 500 maxblocks 1655.0 154228.9 931.9
37File Copy 4096 bufsize 8000 maxblocks 5800.0 1235516.5 2130.2
38Pipe Throughput 12440.0 1217279.3 978.5
39Pipe-based Context Switching 4000.0 24797.2 62.0
40Process Creation 126.0 5322.7 422.4
41Shell Scripts (1 concurrent) 42.4 3299.6 778.2
42Shell Scripts (8 concurrent) 6.0 1146.1 1910.2
43System Call Overhead 15000.0 2702182.3 1801.5
44 ========
45System Benchmarks Index Score 787.9
46------------------------------------------------------------------------
47Benchmark Run: Tue Jun 10 2014 00:04:51 - 00:33:18
484 CPUs in system; running 4 parallel copies of tests
49Dhrystone 2 using register variables 61686020.3 lps (10.0 s, 7 samples)
50Double-Precision Whetstone 8888.7 MWIPS (9.8 s, 7 samples)
51Execl Throughput 6695.9 lps (29.9 s, 2 samples)
52File Copy 1024 bufsize 2000 maxblocks 545098.4 KBps (30.0 s, 2 samples)
53File Copy 256 bufsize 500 maxblocks 143868.5 KBps (30.0 s, 2 samples)
54File Copy 4096 bufsize 8000 maxblocks 1447141.0 KBps (30.0 s, 2 samples)
55Pipe Throughput 3875650.9 lps (10.0 s, 7 samples)
56Pipe-based Context Switching 764302.1 lps (10.0 s, 7 samples)
57Process Creation 18793.6 lps (30.0 s, 2 samples)
58Shell Scripts (1 concurrent) 8797.7 lpm (60.0 s, 2 samples)
59Shell Scripts (8 concurrent) 1582.7 lpm (60.1 s, 2 samples)
60System Call Overhead 6719333.2 lps (10.0 s, 7 samples)
61System Benchmarks Index Values BASELINE RESULT INDEX
62Dhrystone 2 using register variables 116700.0 61686020.3 5285.9
63Double-Precision Whetstone 55.0 8888.7 1616.1
64Execl Throughput 43.0 6695.9 1557.2
65File Copy 1024 bufsize 2000 maxblocks 3960.0 545098.4 1376.5
66File Copy 256 bufsize 500 maxblocks 1655.0 143868.5 869.3
67File Copy 4096 bufsize 8000 maxblocks 5800.0 1447141.0 2495.1
68Pipe Throughput 12440.0 3875650.9 3115.5
69Pipe-based Context Switching 4000.0 764302.1 1910.8
70Process Creation 126.0 18793.6 1491.6
71Shell Scripts (1 concurrent) 42.4 8797.7 2074.9
72Shell Scripts (8 concurrent) 6.0 1582.7 2637.9
73System Call Overhead 15000.0 6719333.2 4479.6
74 ========
75System Benchmarks Index Score 2128.5
76======= Script description and score comparison completed! =======
注:上面会有两个跑分结果,一个是 1 parallel process** 的结果,另一个是4 parallel process 的结果 (具体可以看html里的输出)。两者的区别即一个是单进程跑,一个是多进程跑 。
默认测试完成后测试结果会存放在results目录,如下:
1[root@361way results]# pwd
2/opt/unixbench/UnixBench/results
3[root@361way results]# ls
4361way.com-2014-06-06-01 361way.com-2014-06-06-01.html 361way.com-2014-06-06-01.log
results目录中的三个文件,第一个是和上面贴出的结果一样;第二个html文件是将结果以页面的形式展示出来,可以使用浏览器打开查看;第三个log文件是运行过程中的详细测试过程部分。
三、测试项目分析
测试过程中每个项目后面会有1 2 3 4 5 6 7 8 9 10 数字,意思是进行了10组测试,测试过程中部分内容及解释如下:
Dhrystone 2 using register variables 1 2 3 4 5 6 7 8 9 10 此项产生于 1984,测试 string handling,因为没有浮点操作,所以深受软件和硬件设计(hardware and software design)、编译和链接(compiler and linker options)、代码优化(code optimazaton)、对内存的cache(cache memory)、等待状态(?wait states)整数数据类型(integer data types)的影响 2. ******************** Double-Precision Whetstone 1 2 3 4 5 6 7 8 9 10 这一项测试浮点数操作的速度和效率。这一测试包括几个模块,每个模块都包括一组用于科学计算的操作。覆盖面很广的一系列c函数:sin,cos,sqrt,exp,log 被用于整数和浮点数的数学运算、数组访问、条件分支(conditional branch)和程序调用。此测试同时测试了整数和浮点数算术运算。 3. ************** System Call Overhead 1 2 3 4 5 6 7 8 9 10 测试进入和离开操作系统内核的代价,即一次系统调用的代价。它利用一个反复地调用 getpid 函数的小程序达到此目的。 4. *************** Pipe Throughput 1 2 3 4 5 6 7 8 9 10 管道(pipe)是进程间交流的最简单方式,这里的 Pipe throughtput 指的是一秒钟内一个进程可以向一个管道写 512 字节数据然后再读回的次数。需要注意的是,pipe throughtput 在实际编程中没有对应的真实存在。 5. ************* Pipe-based Context Switching 1 2 3 4 5 6 7 8 9 10 这个测试两个进程(每秒钟)通过一个管道交换一个不断增长的整数的次数。这一点很向现实编程中的一些应用,这个测试程序首先创建一个子进程,再和这个子进程进行双向的管道传输。 6. ************ Process Creation 1 2 3 测试每秒钟一个进程可以创建子进程然后收回子进程的次数(子进程一定立即退出)。process creation 的关注点是新进程进程控制块(process control block)的创建和内存分配,即一针见血地关注内存带宽。一般说来,这个测试被用于对操作系统进程创建这一系统调用的不同实现的比较。 7. *********** Execl Throughput 1 2 3 此测试考察每秒钟可以执行的 execl 系统调用的次数。 execl 系统调用是 exec 函数族的一员。它和其他一些与之相似的命令一样是 execve() 函数的前端。 8. *********** File copy 测试从一个文件向另外一个文件传输数据的速率。每次测试使用不同大小的缓冲区。这一针对文件 read、write、copy 操作的测试统计规定时间(默认是 10s)内的文件 read、write、copy 操作次数。 Filesystem Throughput 1024 bufsize 2000 maxblocks 1 2 3 Filesystem Throughput 256 bufsize 500 maxblocks 1 2 3 Filesystem Throughput 4096 bufsize 8000 maxblocks 1 2 3 9. ********** Shell Scripts 测试一秒钟内一个进程可以并发地开始一个 shell 脚本的 n 个拷贝的次数,n 一般取值 1,2,4,8.(我的系统上取 1, 8, 16)。这个脚本对一个数据文件进行一系列的变形操作(?transformation)。 Shell Scripts (1 concurrent) 1 2 3 Shell Scripts (8 concurrent) 1 2 3 Shell Scripts (16 concurrent) 1 2 3
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/unixbench-benchmark/3437.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.