CPUやメモリなどのシステム性能を比較するベンチマークツール

総合ベンチマークツール「Phoronix Test Suite」

ここまでで見てきたとおり、ベンチマークテストツールはツールごとにさまざまな特徴があり、またその出力形式も異なる。そのため、複数のベンチマークテストを複数のマシンで実行し、それらの結果を比較したいという場合、手動での集計が必要となる。このような集計作業を自動的に行ってくれるのが、最後に紹介するPhoronix Test Suiteというツールだ。

Phoronix Test Suiteは、Linuxのハードウェアレビューや関連ニュースを提供しているニュースサイト「Phoronix」(Phoronix Media)が開発・公開しているベンチマークツールで、さまざまな分野、数十種類にもおよぶベンチマークツールをPhoronix Test Suite経由でインストールしたり実行できる。さらに、テスト結果の集計機能も備えており、複数のテスト結果をグラフ化してHTML形式のレポートを作成・出力することができる。

Phoronix Test Suiteのインストールと基本的な使い方

Phoronix Test SuiteはWebサイトのダウンロードページからダウンロードできる。また、Debianではcontribリポジトリで「phoronix-test-suite」という名称でパッケージが配布されているほか、RHELやその互換環境ではEPELからphoronix-test-suiteパッケージが提供されているので、これらを利用すると良いだろう。

Phoronix Test Suiteのインストール後、初回起動時には使用許諾への同意が求められる。また、匿名での統計レポートの送信(anonymous usage / statistics reporting)や、システム統計レポートの送信(anonymous statistical reporting of installed software / hardware)を行うかどうかもここで問われるので、確認してY(Yes)もしくはn(No)で回答しておこう。

$ phoronix-test-suite

Phoronix Test Suite v3.8.0
User Agreement

Do you agree to these terms and wish to proceed (Y/n):
Enable anonymous usage / statistics reporting (Y/n): Y
Enable anonymous statistical reporting of installed software / hardware (Y/n): n

Phoronix Test Suiteでは、個別のベンチマークテストに加え、いくつかのベンチマークテストをセットにした「Test Suite」が用意されている。実行可能なテスト一覧は、「list-available-tests」引数付きでphoronix-test-suiteコマンドを実行することで確認できる。

$ phoronix-test-suite list-available-tests

Phoronix Test Suite v3.8.0
Available Tests

pts/aio-stress - AIO-Stress Disk
pts/apache - Apache Benchmark System
pts/apitrace - APITrace Graphics
pts/battery-power-usage - Battery Power Usage System
pts/blake2 - BLAKE2 Processor
pts/blogbench - BlogBench Disk
pts/bork - Bork File Encrypter Processor
pts/botan - Botan Processor
pts/build-imagemagick - Timed ImageMagick Compilation Processor
pts/build-linux-kernel - Timed Linux Kernel Compilation Processor
pts/build-mplayer - Timed MPlayer Compilation Processor
pts/build-php - Timed PHP Compilation Processor
pts/bullet - Bullet Physics Engine Processor
pts/byte - BYTE Unix Benchmark Processor
pts/c-ray - C-Ray Processor
pts/cachebench - CacheBench Processor
pts/cairo-demos - Cairo Performance Demos Graphics
pts/cairo-perf-trace - cairo-perf-trace Graphics
pts/clomp - CLOMP Processor
pts/compilebench - Compile Bench Disk
pts/compress-7zip - 7-Zip Compression Processor
pts/compress-gzip - Gzip Compression Processor
pts/compress-lzma - LZMA Compression Processor
pts/compress-pbzip2 - Parallel BZIP2 Compression Processor
pts/corebreach - CoreBreach Graphics
pts/crafty - Crafty Processor
pts/cyclictest - Cyclictest System
pts/dbench - Dbench Disk
pts/dcraw - dcraw Processor
pts/dolfyn - Dolfyn Processor
pts/doom3 - Doom 3 Graphics
pts/encode-ape - Monkey Audio Encoding
pts/encode-flac - FLAC Audio Encoding
pts/encode-mp3 - LAME MP3 Encoding
pts/encode-ogg - Ogg Encoding
pts/encode-opus - Opus Codec Encoding
pts/encode-wavpack - WavPack Audio Encoding
pts/espeak - eSpeak Speech Engine Processor
pts/et - Enemy Territory Graphics
pts/etqw - ET: Quake Wars Graphics
pts/etqw-demo - ET: Quake Wars Demo Graphics
pts/etqw-demo-iqc - ET: Quake Wars Image Quality System
pts/etxreal - ETXreaL Graphics
pts/ffmpeg - FFmpeg Processor
pts/ffte - FFTE Processor
pts/fhourstones - Fhourstones Processor
pts/fio - Flexible IO Tester Disk
pts/fs-mark - FS-Mark Disk
pts/gcrypt - Gcrypt Library Processor
pts/glmark2 - GLmark2 Graphics
pts/gluxmark - gluxMark Graphics
pts/gmpbench - GMPbench Processor
pts/gnupg - GnuPG Processor
pts/gpu-residency - GPU Residency Processor
pts/gputest - GpuTest Graphics
pts/graphics-magick - GraphicsMagick Processor
pts/gtkperf - GtkPerf Graphics
pts/hdparm-read - hdparm Timed Disk Reads Disk
pts/himeno - Himeno Benchmark Processor
pts/hmmer - Timed HMMer Search Processor
pts/idle - Timed Idle System
pts/idle-power-usage - Idle Power Usage System
pts/interbench - Interbench System
pts/iozone - IOzone Disk
pts/j2dbench - Java 2D Microbenchmark Graphics
pts/java-scimark2 - Java SciMark Processor
pts/jgfxbat - Java Graphics Basic Acceptance Test Processor
pts/john-the-ripper - John The Ripper Processor
pts/juliagpu - JuliaGPU System
pts/jxrendermark - JXRenderMark Graphics
pts/lammps - LAMMPS Molecular Dynamics Simulator Processor
pts/lightsmark - Lightsmark Graphics
pts/luxmark - LuxMark System
pts/mafft - Timed MAFFT Alignment Processor
pts/mandelbulbgpu - MandelbulbGPU System
pts/mandelgpu - MandelGPU System
pts/mencoder - Mencoder Processor
pts/minion - Minion Processor
pts/mrbayes - Timed MrBayes Analysis Processor
pts/n-queens - N-Queens Processor
pts/nero2d - Open FMM Nero2D Processor
pts/network-loopback - Loopback TCP Network Performance Network
pts/nexuiz - Nexuiz Graphics
pts/nexuiz-iqc - Nexuiz Image Quality System
pts/nginx - NGINX Benchmark System
pts/noise-level - NoiseLevel Processor
pts/npb - NAS Parallel Benchmarks Processor
pts/open-porous-media - Open Porous Media Processor
pts/openarena - OpenArena Graphics
pts/openssl - OpenSSL Processor
pts/padman - World of Padman Graphics
pts/parboil - Parboil Processor
pts/pgbench - PostgreSQL pgbench System
pts/phpbench - PHPBench System
pts/postmark - PostMark Disk
pts/povray - POV-Ray Processor
pts/powertop-wakeups - Powertop Wakeups Processor
pts/ppracer - Planet Penguin Racer Graphics
pts/prey - Prey Graphics
pts/primesieve - Primesieve Processor
pts/pybench - PyBench System
pts/pyopencl - PyOpenCL System
pts/qgears2 - QGears2 Graphics
pts/quake4 - Quake 4 Graphics
pts/qvdpautest - qVDPAUtest Graphics
pts/ramspeed - RAMspeed SMP Memory
pts/reaction - Reaction Quake 3 Graphics
pts/render-bench - Render Bench Graphics
pts/rodinia - Rodinia Processor
pts/sample-program - Sample Pi Program Processor
pts/scimark2 - SciMark Processor
pts/smallpt - Smallpt Processor
pts/smallpt-gpu - SmallPT GPU System
pts/smokin-guns - Smokin Guns Graphics
pts/specviewperf10 - SPECViewPerf 10 Graphics
pts/specviewperf9 - SPECViewPerf 9 Graphics
pts/sqlite - SQLite Disk
pts/stream - Stream Memory
pts/stresscpu2 - StressCPU2 Stress-Test Processor
pts/sudokut - Sudokut Processor
pts/sunflow - Sunflow Rendering System System
pts/supertuxkart - SuperTuxKart Graphics
pts/system-decompress-bzip2 - System BZIP2 Decompression Processor
pts/system-decompress-gzip - System GZIP Decompression Processor
pts/system-decompress-tiff - System Libtiff Decompression Processor
pts/system-decompress-xz - System XZ Decompression Processor
pts/system-decompress-zlib - System ZLIB Decompression Processor
pts/system-libjpeg - System JPEG Library Decode Processor
pts/system-libxml2 - System Libxml2 Parsing Processor
pts/systemd-boot-kernel - Systemd Kernel Boot Time Processor
pts/systemd-boot-total - Systemd Total Boot Time Processor
pts/systemd-boot-userspace - Systemd Userspace Boot Time Processor
pts/systester - SysTester Processor
pts/tachyon - Tachyon Processor
pts/tf2 - Team Fortress 2 Graphics
pts/tiobench - Threaded I/O Tester Disk
pts/tremulous - Tremulous Graphics
pts/trislam - Triangle Slammer Graphics
pts/tscp - TSCP Processor
pts/ttsiod-renderer - TTSIOD 3D Renderer Processor
pts/unigine-heaven - Unigine Heaven Graphics
pts/unigine-sanctuary - Unigine Sanctuary Graphics
pts/unigine-tropics - Unigine Tropics Graphics
pts/unigine-valley - Unigine Valley Graphics
pts/unpack-linux - Unpacking The Linux Kernel Disk
pts/unvanquished - Unvanquished Graphics
pts/urbanterror - Urban Terror Graphics
pts/ut2004-demo - Unreal Tournament 2004 Demo Graphics
pts/vdrift - VDrift Graphics
pts/video-cpu-usage - 1080p H.264 Video Playback Graphics
pts/vpxenc - VP8 libvpx Encoding Processor
pts/warsow - Warsow Graphics
pts/x11perf - x11perf Graphics
pts/x264 - x264 Processor
pts/xonotic - Xonotic Graphics
pts/xplane9 - X-Plane Graphics
pts/xplane9-iqc - X-Plane Image Quality System

Phoronix Test Suiteで用意されているベンチマークテストでは、前回記事で紹介しているfs-markやhdparm、tiobenchなどのベンチマークツールだけでなく、音声のMP3でのエンコーディングを行ってその速度を測定したり、gzipなどでファイルを圧縮してその速度を測る、といったベンチマークテストも用意されている。また、Test Suitesの一覧は「list-available-suites」引数付きでphoronix-test-suiteコマンドを実行することで確認できる。

$ phoronix-test-suite list-available-suites

Phoronix Test Suite v3.8.0
Available Suites

pts/chess - Chess Test Suite Processor
pts/compilation - Timed Code Compilation Processor
pts/compiler - Compiler Processor
pts/compression - Timed File Compression Processor
pts/computational - Computational Test Suite System
pts/computational-biology - Computational Biology Test Suite Processor
pts/cpu - CPU / Processor Suite Processor
pts/cryptography - Cryptography Processor
pts/daily-kernel-tracker - Daily Kernel Tracker System
pts/daily-system-tracker - Daily System Tracker System
pts/database - Database Test Suite System
pts/desktop-graphics - Desktop Graphics System
pts/disk - Disk Test Suite Disk
pts/encoding - Encoding System
pts/favorites - Favorites System
* pts/gaming - Gaming System
pts/gaming-closed - Closed-Source Gaming System
* pts/gaming-free - Free Software Gaming System
pts/gui-toolkits - GUI Toolkits Graphics
pts/ioquake3-games - Games Using The ioquake3 Engine System
pts/iqc - Image Quality Comparison Suite Graphics
pts/java - Java System
pts/java-opengl - Java OpenGL System
pts/kernel - Kernel System
pts/linux-system - Linux System System
pts/memory - Memory Test Suite Memory
pts/mesa - Mesa Test Suite Graphics
pts/motherboard - Motherboard System
pts/multicore - Multi-Core Processor
pts/netbook - Netbook Test Suite System
pts/network - Networking Test Suite Network
pts/nevada - OpenSolaris Nevada Test Suite System
pts/opencl - OpenCL System
pts/opengl-demos - OpenGL Demos Test Suite System
pts/opengl-workstation - OpenGL Workstation Test Suite System
pts/pts-desktop-live - PTS Desktop Live System
pts/ray-tracing - Ray-Tracing Test Suite System
pts/server - Server Motherboard System
pts/unigine - Unigine Test Suite Graphics
* pts/universe - Universe Test Suite System
pts/universe-cli - Universe CLI Test Suite System
* pts/universe-x - Universe X Test Suite System
pts/video-encoding - Video Encoding System
pts/workstation - Workstation System
pts/workstation-graphics - Workstation Graphics Graphics
pts/xrender - X Render Extension Testing Graphics

* Indicates a partially supported suite.

テストやTest Suiteの詳細は、「phoronix-test-suite info <テストもしくはSuite名>」で確認できる。たとえば、「pts/chess」というTest Suiteについての詳細を確認するには、次のようにする。

$ phoronix-test-suite info pts/chess

Phoronix Test Suite v3.8.0
An outdated version of the Phoronix Test Suite is installed.
The version in use is v3.8.0, but the latest is v4.8.2.
Visit http://www.phoronix-test-suite.com/ to update this software.

Chess Test Suite

Run Identifier: pts/chess-1.0.0
Suite Version: 1.0.0
Maintainer: Michael Larabel
Suite Type: Processor
Unique Tests: 2
Suite Description: This test suite contains tests that are various benchmarks looking at the CPU's performance through different AI algorithms for a game of chess.

pts/chess-1.0.0
* pts/crafty
* pts/tscp

これを見ると、pts/chessというTest Suiteではチェスゲーム向けのAIアルゴリズムに対するCPUの性能をテストできること、このTest Suiteでは「pts/crafty」や「pts/tscp」というテストを実行することが分かる。pts/craftyというテストの詳細は同じくinfoコマンドで確認でき、オープンソースのチェスエンジンを使ってのテストを行うということが分かる。

[hylom@corei7 ~]$ phoronix-test-suite info pts/crafty
Phoronix Test Suite v3.8.0
Crafty 23.4

Run Identifier: pts/crafty-1.3.0
Profile Version: 1.3.0
Maintainer: Michael Larabel
Test Type: Processor
Software Type: Utility
License Type: Free
Test Status: Verified
Project Web-Site: http://www.cis.uab.edu/info/faculty/hyatt/hyatt.html
Estimated Run-Time: 424 Seconds
Download Size: 0.41 MB
Environment Size: 6 MB

Description: This is a performance test of Crafty, an advanced open-source chess engine.

Test Installed: No

Software Dependencies:
- Compiler / Development Libraries
- NUMA Development Files

Phoronix Test Suiteでは、テストに必要なすべてのコンポーネントがインストールされているわけではなく、テストの実行前に必要なコンポーネントをダウンロードしてインストールする仕組みになっている。テストに必要なコンポーネントのインストールには、「phoronix-test-suite install <テスト名もしくはTest Suite名>」コマンドで行える。たとえば、gzipでの圧縮を行ってその速度を測定する「compress-gzip」テストをインストールするには、次のようにする。

$ phoronix-test-suite install compress-gzip

Phoronix Test Suite v3.8.0

To Install: pts/compress-gzip-1.1.0

Determining File Requirements ..........................................
Searching Download Caches ..............................................

1 Test To Install

pts/compress-gzip-1.1.0:
Test Installation 1 of 1
Installing Test @ 19:24:24

インストールしたテストもしくはTest Suiteを実行するには、「phoronix-test-suite benchmark <テスト名もしくはTest Suite名>」コマンドを使う。先にインストールしたcompress-gzipテストを実行する場合、次のようになる。

$ phoronix-test-suite benchmark compress-gzip

テストを実行すると、まずシステム情報が表示された後、テスト結果をファイルに保存するかどうかが尋ねられる(「Would you like to save these test results」の部分)。ここで「Y」(はい)を選択すると、続いて保存する名前の入力が求められる。続いて、ベンチマーク結果を識別するためのユニークな名前を入力するよう求められるが、これについては空のままで構わない。最後に、ベンチマークテスト環境などに関する情報を入力ができるが、こちらもデフォルトのままで構わない。デフォルトの場合、CPUやハードウェア、OSなどの情報が自動的に入力される。

$ phoronix-test-suite benchmark compress-gzip
Phoronix Test Suite v3.8.0

Installed: pts/compress-gzip-1.1.0

System Information

Hardware:
Processor: Intel Core i7 920 @ 2.79GHz (8 Cores), Motherboard: Gigabyte EX58-UD3R, Chipset: Intel 5520/5500/X58 + ICH10R, Memory: 3072MB, Disk: 60GB FUJITSU MHT2060B, Graphics: NVIDIA GeForce 8400 GS 256MB, Audio: Intel 82801JI, Network: Realtek RTL8111/8168B

Software:
OS: CentOS 6.4 (Final), Kernel: 2.6.32-358.el6.x86_64 (x86_64), Compiler: GCC 4.4.7 20120313, File-System: ext4, Screen Resolution: 1600x1200

Would you like to save these test results (Y/n): Y
Enter a name to save these results under: sample01
Enter a unique name to describe this test run / configuration:

If you wish, enter a new description below to better describe this result set / system configuration under test.
Press ENTER to proceed without changes.

Current Description: Intel Core i7 920 testing with a Gigabyte EX58-UD3R and NVIDIA GeForce 8400 GS 256MB on CentOS 6.4 (Final) via the Phoronix Test Suite.

New Description:

これらの入力が完了すると、続いてベンチマークテストが実行される。テストは複数回実行され、その結果の差が大きい場合は自動的に追加でテストが実行される。

Gzip Compression:
pts/compress-gzip-1.1.0
Test 1 of 1
Estimated Trial Run Count: 3
Estimated Time To Completion: 3 Minutes
Running Pre-Test Script @ 19:25:44
Started Run 1 @ 19:27:17
Started Run 2 @ 19:29:41
Started Run 3 @ 19:30:59 [Std. Dev: 78.03%]
Started Run 4 @ 19:31:19 [Std. Dev: 93.29%]
Started Run 5 @ 19:31:37 [Std. Dev: 102.37%]
Started Run 6 @ 19:31:56 [Std. Dev: 108.45%]
Running Post-Test Script @ 19:32:12

Test Results:
138.53726291656
75.26598906517
18.003746032715
16.377418994904
16.272145986557
16.081348896027

Average: 46.76 Seconds

Would you like to upload these results to OpenBenchmarking.org (Y/n): n

この例の場合、1回目と2回目、3回目の結果が大きく異なっていたため、合計6回のテストが実行されている。

テストが完了すると、最後にテスト結果がアップロードされているOpenBenchmarking.orgというWebサイトに結果をアップロードするか尋ねられる。ここで「Y」を選択すると、ベンチマーク結果がその条件も含めて送信される。

なお、ベンチマーク結果はホームディレクトリの.phoronix-test-suite/test-resultsディレクトリ以下に保存される。ここにはテスト結果のグラフを含むHTML形式のテストレポートも格納されており、グラフィカルにテスト結果を確認できる(図2)。

図2 Phoronix Test Suiteが作成するテストレポート
図2 Phoronix Test Suiteが作成するテストレポート

CPUやメモリのベンチマークテストはあくまでも目安として総合的な判断を

CPUやメモリのベンチマークテストはストレージやネットワークのベンチマークテストとは異なり、スループットのような目に見えて分かりやすい結果が出るわけではない。そのため、どちらかというと既存のサーバーと比べての性能差を視覚化すると言った、比較用途での利用が主となる。GeekbenchやPhoronix Test Suiteではさまざまな環境でのベンチマークテスト結果がアップロードされているので、比較対象としてそちらも確認してみると良いだろう。

また、近年はCPUの処理能力が著しいため、CPUの処理能力を使い切るようなケースは多くない。アプリケーションが遅い、といった場合、搭載しているメモリ量やストレージの処理能力、ネットワーク帯域のほうが邪魔をしていることもある。ベンチマークを行う際はCPUやメモリのベンチマーク結果はあくまで目安として、総合的な判断を心がけたい。

おしらせ

banner_vps

banner_writer