ストレステスト
オーバークロックした 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 | linpackAUR - Linpack は BLAS (Basic Linear Algebra Subprograms) ライブラリを使用してベクター演算・行列演算を行います。 |
CPU とメモリに負担をかけるプログラム
Mprime (Windows と MacOS における Prime95)
Prime95 はシステムの安定性を計測するときに使われる標準的なプログラムです。耐久テストモードで Mprime を実行すると CPU の負担が著しい計算を行ってから値が正しいかどうか比較します。
Linux 版の Prime95 は mprimeAUR と呼ばれ AUR からインストールできます。
mprime を実行するにはシェルを開いて "mprime" と入力します:
$ mprime
ソフトウェアがロードされたら、最初の質問に '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! ...
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+ を起動してください)。