使用UnixBench为Linux跑分

跑分软件感觉是被Android玩烂了,突然也想测试下手上的Radxa和Linode VPS的性能怎样

#

UnixBench介绍

简单搜索了下,找到了Linux下较常用的UnixBench,是linux、unix测试系统基准性能的经典工具,UnixBench测试包含了系统调用、读写、进程、2D、3D、管道、运算、C库等系统基准性能,它的优点在于提供了对系统性能的一种评价体系,为系统评分,如此方便对系统作对比测试;但UnixBench在网络性能测试欠缺

UnixBench的使用方法如下:

Download the latest version

wget https://byte-unixbench.googlecode.com/files/UnixBench5.1.3.tgz;

tar xzf UnixBench-5.1.3.tar.gz;

cd UnixBench;

Disable graphic test as no desktop for Linux installed

sed -i "s/GRAPHIC_TESTS = defined/#GRAPHIC_TESTS = defined/g" ./Makefile

make;

./Run;

执行后就耐心等待结果就行,依据机器性能不同,大概需要10分钟

#

UnixBench测试结果

Radxa的执行结果:

more

========================================================================

 BYTE UNIX Benchmarks (Version 5.1.3)

 System: radxa: GNU/Linux

 OS: GNU/Linux -- 3.0.36+ -- #2 SMP PREEMPT Sat Mar 15 11:18:05 CST 2014

 Machine: armv7l (armv7l)

 Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")

 11:50:03 up 12 days, 14:42, 4 users, load average: 0.54, 0.31, 0.58; runlevel 2

------------------------------------------------------------------------

Benchmark Run: Sun Jul 13 2014 11:50:03 - 12:18:17

0 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables    6077940.3 lps  (10.0 s, 7 samples)

Double-Precision Whetstone           995.3 MWIPS (9.9 s, 7 samples)

Execl Throughput                294.0 lps  (29.5 s, 2 samples)

File Copy 1024 bufsize 2000 maxblocks    129538.0 KBps (30.0 s, 2 samples)

File Copy 256 bufsize 500 maxblocks      40792.2 KBps (30.0 s, 2 samples)

File Copy 4096 bufsize 8000 maxblocks    325214.2 KBps (30.0 s, 2 samples)

Pipe Throughput               271265.0 lps  (10.0 s, 7 samples)

Pipe-based Context Switching         64658.0 lps  (10.0 s, 7 samples)

Process Creation                831.6 lps  (30.0 s, 2 samples)

Shell Scripts (1 concurrent)          1785.6 lpm  (60.0 s, 2 samples)

Shell Scripts (8 concurrent)          370.0 lpm  (60.1 s, 2 samples)

System Call Overhead            1007757.5 lps  (10.0 s, 7 samples)

System Benchmarks Index Values        BASELINE    RESULT  INDEX

Dhrystone 2 using register variables     116700.0  6077940.3  520.8

Double-Precision Whetstone            55.0    995.3  181.0

Execl Throughput                 43.0    294.0   68.4

File Copy 1024 bufsize 2000 maxblocks     3960.0   129538.0  327.1

File Copy 256 bufsize 500 maxblocks      1655.0   40792.2  246.5

File Copy 4096 bufsize 8000 maxblocks     5800.0   325214.2  560.7

Pipe Throughput                12440.0   271265.0  218.1

Pipe-based Context Switching          4000.0   64658.0  161.6

Process Creation                126.0    831.6   66.0

Shell Scripts (1 concurrent)           42.4    1785.6  421.1

Shell Scripts (8 concurrent)           6.0    370.0  616.6

System Call Overhead             15000.0  1007757.5  671.8

                                 ========

System Benchmarks Index Score                     264.7

Linode 1GB的执行结果:

========================================================================

 BYTE UNIX Benchmarks (Version 5.1.3)

 System: li715-76: GNU/Linux

 OS: GNU/Linux -- 3.15.3-x86_64-linode44 -- #1 SMP Tue Jul 1 15:51:04 EDT 2014

 Machine: x86_64 (x86_64)

 Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")

 CPU 0: Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz (5602.5 bogomips)

     Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET

 11:50:02 up 8 days, 19:34, 1 user, load average: 0.08, 0.09, 0.51; runlevel 2

------------------------------------------------------------------------

Benchmark Run: Sun Jul 13 2014 11:50:02 - 12:18:09

1 CPU in system; running 1 parallel copy of tests

Dhrystone 2 using register variables    29753198.8 lps  (10.0 s, 7 samples)

Double-Precision Whetstone           3944.6 MWIPS (9.9 s, 7 samples)

Execl Throughput                1619.4 lps  (30.0 s, 2 samples)

File Copy 1024 bufsize 2000 maxblocks    319724.7 KBps (30.0 s, 2 samples)

File Copy 256 bufsize 500 maxblocks      82858.8 KBps (30.0 s, 2 samples)

File Copy 4096 bufsize 8000 maxblocks    957790.3 KBps (30.0 s, 2 samples)

Pipe Throughput               458770.0 lps  (10.0 s, 7 samples)

Pipe-based Context Switching         74230.2 lps  (10.0 s, 7 samples)

Process Creation                2963.8 lps  (30.0 s, 2 samples)

Shell Scripts (1 concurrent)          3719.2 lpm  (60.0 s, 2 samples)

Shell Scripts (8 concurrent)          494.0 lpm  (60.1 s, 2 samples)

System Call Overhead             474360.8 lps  (10.0 s, 7 samples)

System Benchmarks Index Values        BASELINE    RESULT  INDEX

Dhrystone 2 using register variables     116700.0  29753198.8  2549.5

Double-Precision Whetstone            55.0    3944.6  717.2

Execl Throughput                 43.0    1619.4  376.6

File Copy 1024 bufsize 2000 maxblocks     3960.0   319724.7  807.4

File Copy 256 bufsize 500 maxblocks      1655.0   82858.8  500.7

File Copy 4096 bufsize 8000 maxblocks     5800.0   957790.3  1651.4

Pipe Throughput                12440.0   458770.0  368.8

Pipe-based Context Switching          4000.0   74230.2  185.6

Process Creation                126.0    2963.8  235.2

Shell Scripts (1 concurrent)           42.4    3719.2  877.2

Shell Scripts (8 concurrent)           6.0    494.0  823.3

System Call Overhead             15000.0   474360.8  316.2

                                 ========

System Benchmarks Index Score                     587.5

Radxa基本参数:











                    System













                    CPU





                    ARM Cortex-A9 quad core @ 1.6Ghz









                    Memory





                    2GB DDR3 @ 800Mhz









                    Storage





                    8GB Nand Flash











Linode 1GB基本参数:









                System













                CPU





                单核Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz









                Memory





                1GB









                Storage





                24GB SSD Storage









可以看出,表面参数占优的ARM板子Radxa还是输给了Linode的VPS。不过,需要说明的是,VPS都是多个共用一个服务器资源,所以,测试结果并不代表可以使用到这么多资源

#

UnixBench测试结果的解释

1. ***********************

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 操作次数。

9. **********

Shell Scripts

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

10. *********

Arithmetic Test

11. *************

Arithoh 1 2 3

12. *************

C Compiler Throughput 1 2 3

13. *************

Dc: sqrt(2) to 99 decimal places 1 2 3

sqrt(2) 到 99 位小数

14. *************

Recursion Test--Tower of Hanoi 1 2 3

15. *************

join: file 2 is not in sorted order

join: file 1 is not in sorted order

###

参考