ストレステスト

提供: ArchWiki
2017年9月21日 (木) 09:15時点におけるKusakata.bot (トーク | 投稿記録)による版 (文字列「www.archlinuxjp.org」を「www.archlinux.jp」に置換)
ナビゲーションに移動 検索に移動

オーバークロックした PC を動かすときは PC が安定して動作するか確認する必要があります。耐久試験によってシステムの安定性を計測するプログラムは複数存在します。オーバークロックする方法はこの記事では取り扱いません。graysky によって書かれたガイドを見てください: Overclocking guide

ノート: 上記のガイドは多少古いです。新しいハードウェアでは別のガイドを読むことを推奨します。

エラーの確認

mprime や linpack (下を参照) などのストレスアプリケーションは結果の不一致によってエラーをチェックする機能が組み込まれています。カーネルの中にもハードウェアが不安定であることを計測する汎用機能が入っています。以下のコマンドでカーネルのリングバッファを出力してみてください:

# cat /proc/kmsg

以下のような出力がエラーです:

[Hardware Error]: Machine check events logged

mprime が計算を終了してエラーを報告する前に、mprime の実行中にカーネルによって上記のエラーが出力される可能性があります。

CPU に負担をかけるプログラム

必要電圧に応じて2つのカテゴリに分けられます。システムの安定性を評価する際は両方のカテゴリのプログラムを使うことが重要です。皮肉にも、高電圧カテゴリのプログラムよりも中電圧カテゴリのプログラムの方がテストに落ちやすいことがあります。高電圧が必要なプログラムはハードウェアの使用量が激しいため最大の vcore を必要とします。中電圧が必要なプログラムは実行時にいつも最大 vcore を必要とするわけではなく要求されたクロック速度と比較して電圧が低い場合にエラーが発生しないかどうか確認することができます。

オーバークロックした i7-3770K (4.50 GHz) で各プログラムを実行すると以下のようになります。vcore はオフセットモードの +0.020 V で、全ての省電力機能は有効にしています。

Idle: 0.7440 V - 0.8320 V (varies).
Mprime small FFTs: 1.2880 V (steady).
Mprime large FFTs: 1.3040 V (steady).
Mprime blend: 1.2960 V (steady).
Linpack: 1.2320 V - 1.2720 V (varies).
x264 encoding: 1.2320 V - 1.2720 V (varies).
gcc compiling: 1.2720 V (steady).

上記のマシンでは vcode を +0.005 (オフセットモード) にして動作させたとき mprime と linpack では数時間安定していますが、x264 と gcc では数分でエラーが起こっています。

必要電圧 プログラム 説明
Medium
Cc/Gcc cc/gcc のコンパイルは負担テストにうってつけです。両方とも base-devel グループに含まれています。
HandBrake-cli handbrake-cli を使って高品質設定でエンコードしてみてください。
Systester systesterAUR は1億2800万桁まで円周率を計算するマルチスレッドソフトウェアです。システムの安定性をチェックする機能が組み込まれています。
High mprime mprime-binAUR は巨大な数を因数分解して CPU とメモリに負担をかけます。
linpack Linpack は BLAS (Basic Linear Algebra Subprograms) ライブラリを使用してベクター演算・行列演算を行います。

CPU とメモリに負担をかけるプログラム

Mprime (Windows と MacOS における Prime95)

Prime95 はシステムの安定性を計測するときに使われる標準的なプログラムです。耐久テストモードで Mprime を実行すると CPU の負担が著しい計算を行ってから値が正しいかどうか比較します。

Linux 版の Prime95 は mprimeAUR と呼ばれ AUR からインストールできます。

警告: 計算を実行する前に、CPU 温度を監視する手段を用意することを強く推奨します。Lm sensors などのパッケージで監視できます。

mprime を実行するにはシェルを開いて "mprime" と入力します:

$ mprime
ノート: cpufrequtils などの CPU 周波数スケーリングを使用する場合、mprime は nice 値を使用するため最大周波数で動作するように手動でプロセッサを設定する必要があります。

ソフトウェアがロードされたら、最初の質問に 'N' と答えると耐久テストが始まります:

Main Menu

1.  Test/Primenet
2.  Test/Worker threads
3.  Test/Status
4.  Test/Continue
5.  Test/Exit
6.  Advanced/Test
7.  Advanced/Time
8.  Advanced/P-1
9.  Advanced/ECM
10.  Advanced/Manual Communication
11.  Advanced/Unreserve Exponent
12.  Advanced/Quit Gimps
13.  Options/CPU
14.  Options/Preferences
15.  Options/Torture Test
16.  Options/Benchmark
17.  Help/About
18.  Help/About PrimeNet Server

耐久テストには複数のオプションが存在します (メニューのオプション15)。

  • CPU に負担をかけるには Small FFTs (オプション1) を選択。
  • CPU とメモリコントローラをテストするには In-place large FFTs (オプション2) を選択。
  • Blend (オプション3) はデフォルトで CPU とメモリに負担をかけるハイブリッドモードです。

エラーは標準出力と ~/results.txt に吐き出されます。Large FFTs を24時間実行できなければシステムが安定しているとは言えません。

~/results.txt は以下のように出力されます。以下の例では CPU の vcore 電圧が不足しているために2回エラーが発生しています:

[Sun Jun 26 20:10:35 2011]
FATAL ERROR: Rounding was 0.5, expected less than 0.4
Hardware failure detected, consult stress.txt file.
FATAL ERROR: Rounding was 0.5, expected less than 0.4
Hardware failure detected, consult stress.txt file.
[Sat Aug 20 10:50:45 2011]
Self-test 480K passed!
Self-test 480K passed!
[Sat Aug 20 11:06:02 2011]
Self-test 128K passed!
Self-test 128K passed!
[Sat Aug 20 11:22:10 2011]
Self-test 560K passed!
Self-test 560K passed!
...
ノート: small FFT テストはメモリをほとんど使用しないためメモリに不良がないかどうか確認したいときは blend テストを実行してください。

Linpack

linpackAUR は BLAS (Basic Linear Algebra Subprograms) ライブラリを使用して基本的なベクター・行列演算を行います。CPU に負担をかけて安定性を調べることができます (Intel の CPU だけがサポートされています)。インストール後、/usr/share/linpack/linpack.conf~/.config/linpack.conf にコピーしてメモリ容量にあわせて設定を行ってください。

Systester (Windows の SuperPi)

AUR の SystesterAUR は cli と gui の両方が使えます。円周率を計算してエラーチェックを行いシステムの安定性をテストします。2つの異なる計算アルゴリズムを選択できます: Quadratic Convergence of Borwein と Gauss-Legendre です。後者は Windows の SuperPi が使っている方法と同じです。

8スレッドで動作させるコマンドは以下のようになります:

$ systester-cli -gausslg 64M -threads 8

Intel Processor Diagnostic Tool

Intel Processor Diagnostic Tool は CPU の耐久試験を行って Intel のマイクロプロセッサの機能を確認するツールです。Fedora Linux の LiveUSB ISO イメージが存在しています。LiveUSB イメージを使うことでメインのオペレーティングシステムを使わずに耐久テストを行うことができます。

dd や Gnome Disks を使って USB スティックにイメージを書き込んで起動してください。起動したら、ターミナルを開いて以下のコマンドを実行することで64ビットマシン用の Intel Processor Diagnostic Tool をインストールします:

$ install64

インストールしたら、デスクトップ上に表示された IPDT nおアイコンをクリックすることで診断ツールを起動できます。

メモリに負担をかけるプログラム

メモリの負担テストの場合は Memtest86+ が良いでしょう。有名な Chris Brady によって書かれた memtest86 が元になっています。Memtest86+ はオリジナル版と同じように GNU General Public License (GPL) の元で配布されています。

Memtest86+ の実行

ISO をダウンロードして CD に書き込んで起動するか、公式リポジトリから memtest86+ をインストールして GRUB を更新するとパッケージが自動で認識されて直接起動できるようになります (BIOS の場合のみ。EFI の場合は memtest86+ のかわりに memtest86-efiAUR を使用するか Arch Linux のインストールイメージ から memtest86+ を起動してください)。

ヒント: Memtest86+ を10回以上実行してエラーが出なければ問題ありません。