ベンチマーク
関連記事
ベンチマークとはパフォーマンスを測定し他のシステムと結果を比較する行為、また手順が統合され広く認められた標準のことです。システムのパフォーマンスを統合的な方法で評価することで以下のような質問に答えることが可能です:
- システムのパフォーマンスが期待通りに出ているか?
- どのドライバーバージョンを使えば最適なパフォーマンスを得られるか?
- ある作業をするのに十分な能力がシステムにあるか?
システムパフォーマンスを調べることができるツールは多数存在します。以下はその利用可能なツールのリストです。
単体のツール
UnixBench
unixbench のパッケージは AUR に存在します: unixbenchAUR。ベンチマークを実行するにはターミナルから ubench を実行します。
参照:
- https://code.google.com/p/byte-unixbench/
- https://code.google.com/p/byte-unixbench/source/browse/trunk/UnixBench/USAGE
interbench
interbench はインタラクティブに Linux のベンチマークを行うためのアプリケーションです。CPU や I/O のスケジューラ、ファイルシステムの変更やオプションなど、Linux カーネル内の設計やシステム設定の変更による効果を測定するために作られています。
interbench は AUR から利用可能です: interbenchAUR
参照:
ttcp
(n)(nu)ttcp は様々なネットワーク接続における二点間の帯域を計測します。帯域を計測するために両方のノードにプログラムをインストールする必要があります。
ttcp には様々な亜種が存在し AUR から利用できます (下のリンクを参照)
参照:
iperf
iperf は使いやすい二点間の帯域幅テストツールです。TCP または UDP のどちらかが使えます。出力を整形して表示したり並列テストが可能です。
iperf は公式リポジトリからインストールできます。また、iperf の別バージョンが iperf3 から利用可能です。
time
time コマンドを使うことでコマンドの実行にかかった時間を求めることができます。起動から終了までの時間を表示します。time はほとんどの Linux システムに標準で含まれています。
$ time tar -zxvf archive.tar.gz
hdparm
ストレージメディアのベンチマークは Hdparm で取ることができます (hdparm) hdparm に -Tt スイッチをつけると、シーケンシャルリードの時間を計ることができます。この方法はパーティションアライメントに依存しません。
# hdparm -Tt /dev/sdX /dev/sdX: Timing cached reads: x MB in y seconds = z MB/sec Timing buffered disk reads: x MB in y seconds = z MB/sec
gnome-disks
gnome-disks というグラフィカルなベンチマークが gnome-disk-utility パッケージに含まれていて、 最小/最大/平均読み取り回数と平均アクセス時間、そして美しいグラフィカルな表示が得られます。この方法は、パーティションアライメントに依存しません。
# gnome-disks
GUI からベンチマークボタン("More actions..."' > "Benchmark Volume...")があります。例
KDiskMark
kdiskmark は、非常に親しみやすいグラフィカルユーザインタフェースを備えた HDD および SSD ベンチマークツールです。プリセットと強力な GUI を持つKDiskMark は、Flexible I/O Tester を呼び出して出力を処理し、見やすく解釈しやすい包括的なベンチマーク結果を提供します。
systemd-analyze
systemd-analyze plot > boot.svg
カーネル時間、ユーザー空間時間、各サービスにかかる時間など、ブートシークエンスの詳細なグラフィックをプロットします。例
dd
dd ユーティリティは、読み込みと書き込みの両方を測定するために使用することができます。この方法は、パーティションのアライメントに依存します! 言い換えれば、パーティションのアライメントに失敗した場合、マウントされたファイルシステムに読み書きしているため、この事実が表示されるのです。
まず、SSD 上に少なくとも 1.1 GB の空き領域があるディレクトリ(そして明らかにユーザーに wrx パーミッションを与えているディレクトリ)に入り、書き込み速度を測定し、デバイスに何か読み込むものを与えるためにテストファイルを書き込んでください。
$ dd if=/dev/zero of=/path/to/SSD/tempfile bs=1M count=1024 conv=fdatasync,notrunc status=progress
1024+0 records in 1024+0 records out v bytes (w MB, x MiB) copied, y s, z MB/s
次に、バッファキャッシュをクリアして、デバイスから直接読み取り速度を正確に測定します。
# echo 3 > /proc/sys/vm/drop_caches $ dd if=tempfile of=/dev/null bs=1M count=1024 status=progress
1024+0 records in 1024+0 records out v bytes (w MB, x MiB) copied, y s, z MB/s
最後のファイルがバッファに入ったので、このコマンドを繰り返して、バッファキャッシュの速度を確認します。
$ dd if=tempfile of=/dev/null bs=1M count=1024 status=progress
1024+0 records in 1024+0 records out v bytes (w MB, x MiB) copied, y s, z MB/s
最後に、一時ファイルを削除します。
$ rm tempfile
dcfldd
Dcfldd は古き良き dd のように平均速度を MB/s で表示しませんが、 time でそれを回避することができます。
ディスクをクリアする実行時間を設定します。
# time dcfldd if=/dev/zero of=/dev/sdX bs=4M 18944 blocks (75776Mb) written.dcfldd:: No space left of device real 16m17.033s user 0m0.377s sys 0m51.160s
dcfldd コマンドの出力を時間(秒)で割って、MB/s を算出します。この例では、75776Mb/(16.4 min * 60) = 77.0 MB/s となります
7z
7z benchmark コマンドは、CPU の速度を MIPS で計測したり、RAM にエラーがないかを確認するために使用することができます。p7zip をインストールし、以下のコマンドを実行するだけです。より詳細な情報は [1] で確認できます。
$ 7z b
peakperf
peakperf-gitAUR は、x86_64 CPU でピーク性能を実現するマイクロベンチマークです。CPU の冷却問題など、いくつかの問題はあなたの CPU が提供するパフォーマンスを低下させるかもしれません。peakperf を使えば、あなたの CPU がその能力をフルに発揮しているかどうかをチェックすることができます。
あなたの CPU を使って得られるはずの性能(GFLOP/s で測定)を計算し([2] 参照)、peakperf が出す性能と比較することができます。両方の値が同じ (または非常に似ている) 場合、あなたの CPU はあるべき動作をしています。
cryptsetup
cryptsetup ベンチマークは、さまざまな暗号化アルゴリズム (暗号) の速度を測定するために使用できます。
$ cryptsetup benchmark
ソフトウェアスイート
Bonnie++
オリジナルの Bonnie を C++ で書きなおしたベンチマークスイートです。ハードドライブとファイルシステムのパフォーマンステストを複数行います。
参照:
IOzone
IOzone は製造供給元のコンピュータープラットフォームのファイルシステムを分析するのに役立ちます。
このプログラムは AUR から利用可能です: iozoneAUR
参照:
HardInfo
hardInfo はシステムのハードウェア・オペレーティングシステムの情報を収集したり、ベンチマークを実行して、印刷可能な HTML やプレーンテキスト形式のレポートを生成することができます。HardInfo は CPU と FPU のベンチマークを行い、とてもキレイな GTK ベースのインターフェイスを持っています。
Phoronix Test Suite
Phoronix Test Suite は包括的なテスト・ベンチマークのプラットフォームです。拡張性のあるフレームワークを提供することで新しいテストを簡単に追加できるようになっています。クリーンで、再現性があり使いやすい形で、質的・量的なベンチマークが効果的に実行できるように設計されているソフトウェアです。
Phoronix Test Suite は2004年から Phoronix.com によって開発されている拡張的なテスト・内部ツールをベースにしており、業界をリードする第一線のコンピューターハードウェア・ソフトウェアメーカーによってサポートを受けています。このソフトウェアはオープンソースであり GNU GPLv3 でライセンスされています。
もともとは Linux のテストを自動化するために開発されましたが、それから Phoronix Test Suite は OpenSolaris, Apple macOS, Microsoft Windows, BSD オペレーティングシステムのサポートも追加されました。Phoronix Test Suite は軽量なプロセッシングコア (pts-core) と XML ベースのプロファイルと関連するリソーススクリプトからなる各ベンチマークによって構成されています。ベンチマークのインストールから、実際のベンチマーク、主要なハードウェア・ソフトウェアのコンポーネントの解析まで、処理はほとんど自動で行われ、繰り返し実行することが可能で、ユーザーが行う必要があるのは実行の確認だけです。
Phoronix Test Suite のインターフェイスは OpenBenchmarking.org を共同のウェブプラットフォームとしており、テストの結果を一箇所に集めることで、テストのプロファイルや結果を共有できるなど、高度な分析機能などが備わっています。Phoromatic は複数のシステムでのテストの実行をリモート管理機能によって管理するエンタープライズのコンポーネントです。
このスイートは 公式リポジトリ から利用できるパッケージ phoronix-test-suiteAUR によって インストール できます。AUR からは開発中のバージョンが利用できます: phoronix-test-suite-gitAUR
S
S, I/O ベンチマークスイート は、ストレージの I/O 性能を測定するための小さなスクリプトのコレクションです。
これは、BFQ スケジューラの開発チームである algodev によって開発されました。
プロジェクトをダウンロードするかクローンして、依存関係をインストールし、root で実行してください (ディスクスケジューラを変更するのに権限が必要です。)
s-tui
s-tui は、CPU 周波数、使用率、温度、消費電力のグラフを表示できます、その他にストレステスターも組み込まれています。見た目が美しく便利な Curses スタイルのインターフェイスです。
sysbench
sysbench は、万能のマルチスレッドベンチマークツールです。C と Perl で書かれており、ファイルシステム、DRAM、CPU、スレッドベースのスケジューラ、および POSIX ミューテックスのパフォーマンスをベンチマークするために CLI で直接使用できます。または、任意の複雑なワークロードのベンチマークを行うための Lua スクリプトインタープリターとして使用することもできます。データベースベンチマーク用のスクリプトのコレクションを提供します。
フラッシュメディア
フラッシュメディアの性能特性は iozoneAUR を使うことで定量的に測定することができます。読み書き速度の値が一定になることは基本的になく、システムアップデートによる大量のファイルの書き込みや展開など、I/O の負担が重い操作と互いに関係があります。そのような場合に考慮する必要がある基準はランダム書き込み速度です。
以下の例では 4k レコードサイズで 10M のファイルをテストしています:
$ iozone -e -I -a -s 10M -r 4k -i 0 -i 1 -i 2 ... random random kB reclen write rewrite read reread read write 10240 4 661 649 5802 5822 3892 624
グラフィックス
Basemark GPU
Basemark GPU は、モバイルおよびデスクトッププラットフォームにおけるグラフィックス API(OpenGL 4.5, OpenGL ES 3.1, Vulkan, Microsoft DirectX 12)のパフォーマンスを分析・測定するための評価ツールです。Basemark GPU は、デスクトップとモバイルの両プラットフォームを対象とし、High Quality モードと Medium Quality モードの両方を提供します。High-Quality モードは最先端のデスクトップ向けワークロードに対応し、Medium Quality モードは同等のモバイル向けワークロードに対応しています。
AMD GPU を使用しており、同時に複数の vulkan 実装をインストールしている場合、Test ページでは、Graphics Device ドロップダウンリストに別々の GPU として表示されます。
Basemark GPU は、basemarkAUR パッケージで入手できます。
Blender-benchmark
Blender-benchmark は、OS、RAM、グラフィックカード、CPU モデルなどのシステムに関する情報と、ベンチマーク実行中のシステムの性能に関する情報を収集します。その後、ユーザーは Blender Open Data プラットフォーム上で結果をオンラインで共有したり、データをローカルに保存したりすることができます。
Blender-benchmark は blender-benchmarkAUR パッケージで利用可能です。
GFXBench
GFXBench は、すべてのプラットフォームにおいて、次世代グラフィックス機能を搭載したモバイルおよびデスクトップのパフォーマンスを測定するハイエンドグラフィックベンチマークです。真のクロス API ベンチマークとして、GFXBench は OpenGL, OpenGL ES, Vulkan, Metal, DirectX/Direct3D, DX12 を含む業界標準およびベンダー固有の API をすべてサポートしています。
Vulkan API テストは現在開発中であり、同社のコーポレート・パートナーのみが利用可能です。
GFXBenchは gfxbenchAUR パッケージで提供されています。
glmark2
glmark2 は、OpenGL 2.0 および ES 2.0 のベンチマークです。
glmark2 は glmark2AUR パッケージで利用可能です。
glxgears
glxgears は大衆的な OpenGL テストで、シンプルに OpenGL のパフォーマンスを測ってフレームレートを出力します。グラフィックドライバーのダイレクトレンダリング機能のテストとして glxgears は有用ですが、時代遅れのツールなので、GNU/Linux グラフィックの現況や OpenGL 全体の性能を示すものではありません。glxgears がテストするのはゲームなどに使われる OpenGL の機能の中でも一部だけです。glxgears でパフォーマンスの向上が見られたからといってゲームでもそれが必ずしも反映されるとは限りません。詳しくは ここ を見て下さい。
glxgears は mesa-demos や lib32-mesa-demos (Multilib) パッケージでインストールできます。
GpuTest
GpuTest は、クロスプラットフォーム(Windows、Linux、Max OS X)の GPU ストレステストと OpenGL ベンチマークです。GpuTest には、Windows の世界で人気のあるもの (FurMark や TessMark) を含むいくつかの GPU テストが付属しています。
GpuTest は gputestAUR パッケージで利用可能です。
intel-gpu-tools
intel-gpu-tools では、統合 GPU に関する重要な情報が提供されます。これは、GPU アクセラレーションの問題を診断する際に非常に役立ちます。
これを使用するには、intel-gpu-tools パッケージを インストール します。
Unigine Engine
Unigine が開発した現代的な OpenGL ベンチマークです。彼らのグラフィックエンジンをベースにしており、以下のような機能が存在します:
- ピクセルあたりの動的光源処理
- 通常・視差遮蔽マッピング
- 64ビットの HDR レンダリング
- ボリュームフォグ・ライト
- パワフルなパーティクルシステム: 炎・煙・爆発
- 拡張性のあるシェーダセット (GLSL / HLSL)
- ポストプロセス: 被写界深度・屈折・グロー・ブラー・色補正など
最近では Unigine ベンチマークはシステムをオーバークロックしようとしているユーザーによって使用されています。特に Heaven はオーバークロックの初期安定性テストに使われています。
ベンチマークは AUR から利用可能です (下のリンクを参照)。
参照:
- unigine-heavenAUR
- unigine-tropicsAUR
- unigine-sanctuaryAUR
- unigine-valleyAUR
- unigine-superpositionAUR
vkmark
vkmark は、ターゲットとなる設定可能なシーンを持つ、拡張可能な Vulkan ベンチマークスイートです。
vkmark は vkmark-gitAUR パッケージで利用可能です。