この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
様々なOSに対して、一貫した手法でベンチマークしたい場合、Phoronix Test Suite は有力な候補の一つです。
500近いベンチマーク、CPU・GPU・メモリなど様々な観点でグループ化した60近いベンチマークスイートが用意されており、 ベンチマークの計測、レポーティング、必要なパッケージのインストールといった機能が備わっています。
さらには、テスト結果をベンチマーク共有サイトにアップロードして共有することも可能です。
インストール
Phoronix Test Suiteはコマンドラインツールにしては珍しく、PHPで書かれています。 まずは関連パッケージをインストールします。
Ubuntu 22.04
Ubuntu 22.04 の場合、以下の通りです。
$ sudo apt update && sudo apt upgrade
$ sudo apt install php8.1-cli php8.1-common php8.1-bz2 php8.1-curl php8.1-sqlite3 php8.1-gd php8.1-xml
次に、公式サイトから最新のソースコードを取得し、インストールコマンドを実行します。
$ wget https://phoronix-test-suite.com/releases/phoronix-test-suite-10.8.3.tar.gz
$ tar zxf phoronix-test-suite-10.8.3.tar.gz
$ cd phoronix-test-suite/
$ sudo ./install-sh
-e
Phoronix Test Suite Installation Completed
Executable File: /usr/bin/phoronix-test-suite
Documentation: /usr/share/doc/phoronix-test-suite/
Phoronix Test Suite Files: /usr/share/phoronix-test-suite/
$ phoronix-test-suite version
...
Phoronix Test Suite v10.8.3
※ .deb パッケージも用意されていましたが、インストール時に依存関係のエラーが発生したため、apt
で個別にインストールしました。
Ubuntu 20.04
Ubuntu 20.04 の場合、以下の通りです。
$ sudo apt update && sudo apt upgrade
$ sudo apt install php7.4-cli php7.4-common php7.4-bz2 php7.4-curl php7.4-sqlite3 php7.4-gd php7.4-xml
次に、公式サイトから最新のソースコードを取得し、インストールコマンドを実行します。
この手順は先程と同じため、割愛します。
ベンチマークの流れ
$ phoronix-test-suite benchmark 実行するベンチマーク
を叩くと、ベンチマークに必要なパッケージのインストール、実行、レポートなどを半自動で実行します。
ベンチマーク結果の保存・共有やテストの詳細設定などは、ウィザード形式で答えます。
例えば openssl をベンチマークする場合は次の通りです。
$ phoronix-test-suite benchmark openssl
phoronix-test-suite benchmark openssl
...
Phoronix Test Suite v10.8.1
Installed: pts/openssl-3.0.1
OpenSSL 3.0:
pts/openssl-3.0.1
Processor Test Configuration
1: RSA4096
2: SHA256
3: Test All Options
** Multiple items can be selected, delimit by a comma. **
Algorithm: 2
System Information
PROCESSOR: ARMv8 Neoverse-N1
Core Count: 64
Cache Size: 32 MB
GRAPHICS:
Vulkan: 1.0.2
MOTHERBOARD: Amazon EC2 c6g.16xlarge
BIOS Version: 1.0
Chipset: Amazon Device 0200
Network: Amazon Elastic
MEMORY: 128GB
DISK: 9GB Amazon Elastic Block Store
File-System: ext4
Mount Options: discard relatime rw
Disk Scheduler: NONE
Disk Details: Block Size: 4096
OPERATING SYSTEM: Ubuntu 20.04
Kernel: 5.11.0-1022-aws (aarch64)
Compiler: GCC 9.3.0
Security: itlb_multihit: Not affected
+ l1tf: Not affected
+ mds: Not affected
+ meltdown: Not affected
+ spec_store_bypass: Mitigation of SSB disabled via prctl
+ spectre_v1: Mitigation of __user pointer sanitization
+ spectre_v2: Not affected
+ srbds: Not affected
+ tsx_async_abort: Not affected
Would you like to save these test results (Y/n): y
Enter a name for the result file: ...
ベンチマークの実行環境は System Information として表示されます。
複数回ベンチマーク実行後、レポートが表示されます。
レポートの最後に、ベンチマーク共有サイト(OpenBenchmarking.org)のサンプルを元に、主要プロセッサの結果や今回の結果のランキングなどがプロットされます。 This Result (89th Percentile): 42506805740 から、今回の結果は上位11%に位置していることがわかります。
テスト結果を保存すると、オプトインで OpenBenchmarking.org にベンチマーク結果を共有することもできます。
Would you like to upload the results to OpenBenchmarking.org (y/n):
ぜひ openbenchmarking.org で共有してください。
ベンチマークの種類
本ツールは、2022/02/03時点で
- 483 テスト
- 1983 テストバージョン
- 59 スイート
のベンチマークが存在します。
どのベンチマークを利用すればよいか迷ってしまいますね。
本ツールを元にしたベンチマーク共有サイトの openbenchmarking.org では、次の3つが人気です。
- Blender (
$ phoronix-test-suite benchmark blender
) # GPU - Timed Linux Kernel Compilation (
$ phoronix-test-suite benchmark build-linux-kernel
) # CPU - AOM AV1 (
$ phoronix-test-suite benchmark aom-av1
) # ビデオエンコード
約500あるベンチマークのなかから、おすすめは次のコマンドで確認できます。
$ phoronix-test-suite list-recommended-tests
Phoronix Test Suite v10.8.1
Recommended OpenBenchmarking.org Test Profiles
Processor Tests
pts/build-linux-kernel Timed Linux Kernel Compilation
pts/compress-7zip 7-Zip Compression
pts/openssl OpenSSL
pts/encode-flac FLAC Audio Encoding
pts/npb NAS Parallel Benchmarks
pts/hmmer Timed HMMer Search
pts/gcrypt Gcrypt Library
pts/botan Botan
pts/gmpbench GNU GMP GMPbench
pts/mrbayes Timed MrBayes Analysis
System Tests
pts/apache Apache HTTP Server
pts/pgbench PostgreSQL pgbench
pts/nginx nginx
pts/blender Blender
pts/systemd-boot-total Systemd Total Boot Time
pts/stress-ng Stress-NG
pts/viennacl ViennaCL
pts/tjbench libjpeg-turbo tjbench
system/selenium Selenium
system/gimp GIMP
Graphics Tests
pts/xonotic Xonotic
pts/csgo Counter-Strike: Global Offensive
pts/glmark2 GLmark2
pts/unvanquished Unvanquished
pts/dota2 Dota 2
pts/shoc SHOC Scalable HeterOgeneous Computing
pts/etlegacy ET: Legacy
pts/insurgency Insurgency
pts/civilization-vi Civilization VI
pts/paraview ParaView
Disk Tests
pts/fio Flexible IO Tester
pts/fs-mark FS-Mark
Memory Tests
pts/stream Stream
pts/intel-mlc Intel Memory Latency Checker
pts/stream-dynamic Stream-Dynamic
OS Tests
pts/sockperf Sockperf
各ベンチマークは
- Processor
- System
- Graphics
- Disk
- Memory
- OS
など、分類されています。
利用可能なテスト一覧は次のコマンドで確認できます。
$ phoronix-test-suite list-available-tests
Phoronix Test Suite v10.8.1
Available Tests
pts/ai-benchmark AI Benchmark Alpha System
pts/aircrack-ng Aircrack-ng Processor
pts/amg Algebraic Multi-Grid Benchmark Processor
pts/aobench AOBench Processor
pts/aom-av1 AOM AV1 Processor
pts/apache Apache HTTP Server System
pts/apache-siege Apache Siege System
pts/appleseed Appleseed System
pts/arrayfire ArrayFire Processor
...
git/aom-av1 AOM AV1 Processor
git/dav1d dav1d Processor
git/rav1e rav1e Processor
git/svt-av1 SVT-AV1 Processor
git/svt-hevc SVT-HEVC Processor
git/svt-vp9 SVT-VP9 Processor
git/vpxenc VP9 libvpx Encoding Processor
git/x265 x265 Processor
テストをグルーピングしたテストスイートの一覧は次のコマンドで確認できます。
$ phoronix-test-suite list-suites
Phoronix Test Suite v10.8.1
Available Suites
pts/audio-encoding - Audio Encoding System
pts/av1 - AV1 System
pts/bioinformatics - Bioinformatics System
pts/browsers - Web Browsers System
pts/cad - CAD System
pts/chess - Chess Test Suite Processor
...
最後に
Phoronix Test Suiteは 2008年から現在に至るまで活発に開発されている枯れたツールで、機能も豊富です。
クラスプラットフォームに様々なベンチマークを再現性のある一環したアプローチでベンチマークしたい場合、有力なツールの一つと思います。
スクリプトを組むことで
- AWS EC2スポットインスタンスを起動
- Phoronix Test Suiteのインストール
- テストスイートの実行
- テスト結果をアップロード
- スポットインスタンスをターミネート
といった使い方も可能です。
ぜひ、ご活用ください。