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

総合ベンチマークツール「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やメモリのベンチマーク結果はあくまで目安として、総合的な判断を心がけたい。