ベンチマーク

提供: ArchWiki
2022年1月27日 (木) 00:11時点におけるKgx (トーク | 投稿記録)による版 (→‎dcfldd: 翻訳)
ナビゲーションに移動 検索に移動

関連記事

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

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

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

単体のツール

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 command can be used to measure the CPU speed in MIPS and also to check RAM for errors. Just install p7zip and run the command below. More detailed information can be found at [1].

$ 7z b

peakperf

peakperf-gitAUR is a microbenchmark that achieves peak performance on x86_64 CPUs. Some issues may reduce the performance provided by your CPU, like CPU cooling. With peakperf you can check if your CPU provides the full power it is capable of doing.

You can calculate the performance (measured in GFLOP/s) you should get using your CPU (see [2]) and compare it with the performance that peakperf gives you. If both values are the same (or very similar), your CPU behaves as it should.

ノート: Even though the goal of peakperf is to test the CPU, it is also a great way to test your cooling, since it will throttle your CPU to the limit.

ソフトウェアスイート

Bonnie++

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

警告: By default, bonnie++ write at least twice the RAM size on disk. If you want to preserve your SSD, use non default option.
ノート: オリジナルの 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, an I/O Benchmark Suite, is a small collection of scripts to measure storage I/O performance.

It has been developed by algodev, the team behind the BFQ scheduler.

Download or clone the project, install its dependencies and run it as root (privileges needed to change disk scheduler).

フラッシュメディア

フラッシュメディアの性能特性は 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 を参照。

Graphics

Basemark GPU

Basemark GPU is an evaluation tool to analyze and measure graphics API (OpenGL 4.5, OpenGL ES 3.1, Vulkan and Microsoft DirectX 12) performance across mobile and desktop platforms. Basemark GPU targets both Desktop and Mobile platforms by providing both High Quality and Medium Quality modes. The High-Quality mode addresses cutting-edge Desktop workloads while the Medium Quality mode addresses equivalent Mobile workloads.

If you are using AMD GPU and have several vulkan implementations installed simultaneously, in the Test page you will see them as separate GPUs in Graphics Device dropdown list.

Basemark GPU is available in basemarkAUR package.

GFXBench

GFXBench is a high-end graphics benchmark that measures mobile and desktop performance with next-gen graphics features across all platforms. As a true cross-API benchmark, GFXBench supports all the industry-standard and vendor-specific APIs including OpenGL, OpenGL ES, Vulkan, Metal, DirectX/Direct3D and DX12.

Vulkan API tests are currently under development and are only available for their corporate partners.

GFXBench is available in gfxbenchAUR package.

glmark2

glmark2 is an OpenGL 2.0 and ES 2.0 benchmark.

glmark2 is available in glmark2AUR package.

glxgears

glxgears は大衆的な OpenGL テストで、シンプルに OpenGL のパフォーマンスを測ってフレームレートを出力します。グラフィックドライバーのダイレクトレンダリング機能のテストとして glxgears は有用ですが、時代遅れのツールなので、GNU/Linux グラフィックの現況や OpenGL 全体の性能を示すものではありません。glxgears がテストするのはゲームなどに使われる OpenGL の機能の中でも一部だけです。glxgears でパフォーマンスの向上が見られたからといってゲームでもそれが必ずしも反映されるとは限りません。詳しくは ここ を見て下さい。

glxgears は mesa-demoslib32-mesa-demos (Multilib) パッケージでインストールできます。

GpuTest

GpuTest is a cross-platform (Windows, Linux and Max OS X) GPU stress test and OpenGL benchmark. GpuTest comes with several GPU tests including some popular ones from Windows'world (FurMark or TessMark).

GpuTest is available in gputestAUR package.

Unigine Engine

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

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

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

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

参照:

vkmark

vkmark is an extensible Vulkan benchmarking suite with targeted, configurable scenes.

vkmark is available in vkmark-gitAUR package.

Blender-benchmark

Blender-benchmark will gather information about the system, such as operating system, RAM, graphics cards, CPU model, as well as information about the performance of the system during the execution of the benchmark. After that, the user will be able to share the result online on the Blender Open Data platform, or to save the data locally.

Blender-benchmark is available in the blender-benchmarkAUR package.

参照