ベンチマーク

提供: ArchWiki
2023年10月3日 (火) 18:25時点におけるKgx (トーク | 投稿記録)による版 (→‎ソフトウェアスイート: sysbenchを翻訳して追加)
ナビゲーションに移動 検索に移動

関連記事

ベンチマークとはパフォーマンスを測定し他のシステムと結果を比較する行為、また手順が統合され広く認められた標準のことです。システムのパフォーマンスを統合的な方法で評価することで以下のような質問に答えることが可能です:

  • システムのパフォーマンスが期待通りに出ているか?
  • どのドライバーバージョンを使えば最適なパフォーマンスを得られるか?
  • ある作業をするのに十分な能力がシステムにあるか?

システムパフォーマンスを調べることができるツールは多数存在します。以下はその利用可能なツールのリストです。

単体のツール

UnixBench

unixbench のパッケージは AUR に存在します: unixbenchAUR。ベンチマークを実行するにはターミナルから ubench を実行します。

参照:

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
ノート: hdparm のマニュアルにあるように、読み取り速度を正確に評価するためには、上記のコマンドを2-3回実行し、結果を手動で平均化する必要があります。

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
ヒント: sync の要件や関連する dd オプションについての説明は dd-benchmark を参照してください。

次に、バッファキャッシュをクリアして、デバイスから直接読み取り速度を正確に測定します。

# 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
ノート: バッファの読み込み速度を正確に評価するためには、上記のコマンドを4-5回実行し、その結果を手動で平均化する必要があります

最後に、一時ファイルを削除します。

$ rm tempfile
ノート: SSD コントローラによっては、圧縮ハードウェアが搭載されており、ベンチマークの結果に影響を与える可能性があります。https://www.pugetsystems.com/labs/articles/SSDs-Advertised-vs-Actual-Performance-179/ を参照してください。

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 はあるべき動作をしています。

ノート: peakperf の目的は CPU をテストすることですが、CPU を限界まで絞るので冷却をテストするのにも最適な方法です

cryptsetup

cryptsetup ベンチマークは、さまざまな暗号化アルゴリズム (暗号) の速度を測定するために使用できます。

$ cryptsetup benchmark

ソフトウェアスイート

Bonnie++

オリジナルの Bonnie を C++ で書きなおしたベンチマークスイートです。ハードドライブとファイルシステムのパフォーマンステストを複数行います。

警告: デフォルトでは、bonnie++ は少なくとも RAM サイズの2倍の量をディスクに書き込みます。SSD を消耗させたくない場合、デフォルト以外のオプションを指定して下さい。
ノート: オリジナルの Bonnie スイートは GPL やその他の互換性のあるライセンスでリリースされていません。

bonnie++公式リポジトリから利用可能です。

参照:

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
ノート:
  • テストの値は KB/s で報告されます。
  • SD カードと他のフラッシュメディアの性能表は Tom's Hardware を参照。

グラフィックス

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 パッケージで入手できます。

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-demoslib32-mesa-demos (Multilib) パッケージでインストールできます。

GpuTest

GpuTest は、クロスプラットフォーム(Windows、Linux、Max OS X)の GPU ストレステストと OpenGL ベンチマークです。GpuTest には、Windows の世界で人気のあるもの (FurMark や TessMark) を含むいくつかの GPU テストが付属しています。

GpuTest は gputestAUR パッケージで利用可能です。

Unigine Engine

Unigine が開発した現代的な OpenGL ベンチマークです。彼らのグラフィックエンジンをベースにしており、以下のような機能が存在します:

  • ピクセルあたりの動的光源処理
  • 通常・視差遮蔽マッピング
  • 64ビットの HDR レンダリング
  • ボリュームフォグ・ライト
  • パワフルなパーティクルシステム: 炎・煙・爆発
  • 拡張性のあるシェーダセット (GLSL / HLSL)
  • ポストプロセス: 被写界深度・屈折・グロー・ブラー・色補正など

最近では Unigine ベンチマークはシステムをオーバークロックしようとしているユーザーによって使用されています。特に Heaven はオーバークロックの初期安定性テストに使われています。

ベンチマークは AUR から利用可能です (下のリンクを参照)。

参照:

vkmark

vkmark は、ターゲットとなる設定可能なシーンを持つ、拡張可能な Vulkan ベンチマークスイートです。

vkmark は vkmark-gitAUR パッケージで利用可能です。

Blender-benchmark

Blender-benchmark は、OS、RAM、グラフィックカード、CPU モデルなどのシステムに関する情報と、ベンチマーク実行中のシステムの性能に関する情報を収集します。その後、ユーザーは Blender Open Data プラットフォーム上で結果をオンラインで共有したり、データをローカルに保存したりすることができます。

Blender-benchmark は blender-benchmarkAUR パッケージで利用可能です。

参照