Linuxの性能測定ツールとして、UnixBenchを試してみました。
リンク:https://code.google.com/archive/p/byte-unixbench/
今後はこれを使って色々と測定してみよう。比較サイトはウケるし。
UnixBenchとは
It was then taken and expanded by Byte Magazine. Linux mods by Jon Tombs, and original authors Ben Smith, Rick Grehan, and Tom Yager.The tests compare Unix systems by comparing their results to a set of scores set by running the code on a benchmark system, which is a SPARCstation 20-61 (rated at 10.0).
とのこと。ざっくりと「SPARCstation 20-61」というマシンを10.0として、スコアを出すということだろう。
なぜ1.0にしなかった?と思ったけど、確かにこれより遅いマシンがあるから、1.0だと色々と不都合があるんだな。
CentOS7にインストール
なんかもう入っていたが、以下のものが必要。
- perl
- perl-Time-HiRes
- make
- gcc
それをyumで入れる。
[root@hostname~]# yum install perl perl-Time-HiRes make gcc
ちなみに、以下のバージョンが入っていたので、何もしない。
CentOS7のインストール時に、「開発ツール」をチェック入れると、何もしないでも入る。
パッケージ 4:perl-5.16.3-286.el7.x86_64 はインストール済みか最新バージョンです パッケージ 4:perl-Time-HiRes-1.9725-3.el7.x86_64 はインストール済みか最新バージョンです パッケージ 1:make-3.82-21.el7.x86_64 はインストール済みか最新バージョンです パッケージ gcc-4.8.5-4.el7.x86_64 はインストール済みか最新バージョンです 何もしません
サイトからwgetする。
[root@hostname~]# wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/byte-unixbench/UnixBench5.1.3.tgz
解凍して、
[root@hostname src]# tar xzvf UnixBench5.1.3.tgz
実行!これ自体の実行時間を測定してみる。
[root@hostname src]# cd UnixBench [root@hostname UnixBench]# ls Makefile README Run USAGE WRITING_TESTS pgms results src testdir [root@hostname UnixBench]# time ./Run
どんなテストがあるか?
- Dhrystone 2 using register variables
2つのレジスタを使ってシステム(整数)プログラミングの性能 - Double-Precision Whetstone
浮動小数点演算性能 - Execl Throughput
関数の呼び出し性能 - File Copy 1024 bufsize 2000 maxblocks
ファイルのコピー(バッファサイズ1024バイト) - File Copy 256 bufsize 500 maxblocks
ファイルのコピー(バッファサイズ256バイト) - File Copy 4096 bufsize 8000 maxblocks
ファイルのコピー(バッファサイズ4096バイト) - Pipe Throughput
パイプ処理のスループット - Pipe-based Context Switching
パイプベースのコンテキストのスイッチング処理 - Process Creation
プロセス作成 - System Call Overhead
システムコールでのオーバーヘッド - Shell Scripts (1 concurrent)
1つだけシェルスクリプトの実行 - Shell Scripts (8 concurrent)
8つ同時にシェルスクリプトの実行
結果
なんか色々と出たが、結果はこんな感じに。
[root@limesurvey UnixBench]# time ./Run gcc -o ./pgms/arithoh -DTIME -Wall -pedantic -ansi -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall -Darithoh ./src/arith.c ・・・ make[1]: Leaving directory `/usr/local/src/UnixBench' sh: 3dinfo: command not found # # # # # # # ##### ###### # # #### # # # # ## # # # # # # # ## # # # # # # # # # # # ## ##### ##### # # # # ###### # # # # # # ## # # # # # # # # # # # # ## # # # # # # # ## # # # # #### # # # # # ##### ###### # # #### # # Version 5.1.3 Based on the Byte Magazine Unix Benchmark Multi-CPU version Version 5 revisions by Ian Smith, Sunnyvale, CA, USA January 13, 2011 johantheghost at yahoo period com 1 x Dhrystone 2 using register variables 1 2 3 4 5 6 7 8 9 10 1 x Double-Precision Whetstone 1 2 3 4 5 6 7 8 9 10 1 x Execl Throughput 1 2 3 1 x File Copy 1024 bufsize 2000 maxblocks 1 2 3 1 x File Copy 256 bufsize 500 maxblocks 1 2 3 1 x File Copy 4096 bufsize 8000 maxblocks 1 2 3 1 x Pipe Throughput 1 2 3 4 5 6 7 8 9 10 1 x Pipe-based Context Switching 1 2 3 4 5 6 7 8 9 10 1 x Process Creation 1 2 3 1 x System Call Overhead 1 2 3 4 5 6 7 8 9 10 1 x Shell Scripts (1 concurrent) 1 2 3 1 x Shell Scripts (8 concurrent) 1 2 3 ======================================================================== BYTE UNIX Benchmarks (Version 5.1.3) System: limesurvey: GNU/Linux OS: GNU/Linux -- 3.10.0-327.4.4.el7.x86_64 -- #1 SMP Tue Jan 5 16:07:00 UTC 2016 Machine: x86_64 (x86_64) Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8") CPU 0: Intel(R) Core(TM) i5-2500 CPU @ 3.30GHz (6585.2 bogomips) x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET 23:30:48 up 1:05, 2 users, load average: 0.00, 0.01, 0.05; runlevel 3 ------------------------------------------------------------------------ Benchmark Run: 木 1月 28 2016 23:30:48 - 23:58:51 1 CPU in system; running 1 parallel copy of tests Dhrystone 2 using register variables 38289380.4 lps (10.0 s, 7 samples) Double-Precision Whetstone 4523.6 MWIPS (9.9 s, 7 samples) Execl Throughput 4090.4 lps (30.0 s, 2 samples) File Copy 1024 bufsize 2000 maxblocks 1084081.1 KBps (30.0 s, 2 samples) File Copy 256 bufsize 500 maxblocks 317051.3 KBps (30.0 s, 2 samples) File Copy 4096 bufsize 8000 maxblocks 2450357.9 KBps (30.0 s, 2 samples) Pipe Throughput 1661508.7 lps (10.0 s, 7 samples) Pipe-based Context Switching 331576.6 lps (10.0 s, 7 samples) Process Creation 11962.2 lps (30.0 s, 2 samples) Shell Scripts (1 concurrent) 5185.8 lpm (60.0 s, 2 samples) Shell Scripts (8 concurrent) 751.2 lpm (60.1 s, 2 samples) System Call Overhead 2626985.8 lps (10.0 s, 7 samples) System Benchmarks Index Values BASELINE RESULT INDEX Dhrystone 2 using register variables 116700.0 38289380.4 3281.0 Double-Precision Whetstone 55.0 4523.6 822.5 Execl Throughput 43.0 4090.4 951.2 File Copy 1024 bufsize 2000 maxblocks 3960.0 1084081.1 2737.6 File Copy 256 bufsize 500 maxblocks 1655.0 317051.3 1915.7 File Copy 4096 bufsize 8000 maxblocks 5800.0 2450357.9 4224.8 Pipe Throughput 12440.0 1661508.7 1335.6 Pipe-based Context Switching 4000.0 331576.6 828.9 Process Creation 126.0 11962.2 949.4 Shell Scripts (1 concurrent) 42.4 5185.8 1223.1 Shell Scripts (8 concurrent) 6.0 751.2 1252.1 System Call Overhead 15000.0 2626985.8 1751.3 ======== System Benchmarks Index Score 1526.7 real 28m5.262s user 7m5.979s sys 14m36.466s
色々結果はあるが、とにかく最後の 1526.7 というのがこのマシンの結果ということだ。
これをベースラインに後で色々と測定していこうと思う。