A.8. コア
テストの対象
core テストでは、システムの CPU を検査し、負荷がかかった状態でも適切に機能する能力があるかどうかを確認します。
テストの内容
core のテストは、実際には 2 つの別々のルーチンで構成されています。最初のテストは、クロックジッターを検出するためのものです。ジッターとは、システムのクロックが互いに同期していないときに発生する状態のことです。システムクロックは、CPU クロック速度と同じではありません。これは、CPU が動作している速度を表すもう 1 つの方法です。jitter テストでは、getimeofday() 関数を使用して、各論理 CPU で観察された時間を取得し、戻り値を分析します。すべての CPU クロックが互いに 0.2 ナノ秒以内の場合は、テストに合格します。ジッターテストの許容範囲は非常に厳しいものです。良い結果を得るためには、テストの実行時にシステム上で動作している負荷が rhcert テストだけであることが重要です。他の計算負荷が存在すると、タイミングが阻害され、テストが失敗する可能性があります。ジッターテストでは、カーネルがどのクロックソースを使用しているかも確認します。インテルプロセッサーが TSC を使用していない場合、ログに警告が表示されますが、テストの PASS/FAIL ステータスには影響しません。
コアテストで実行された 2 つ目のルーチンは、CPU 負荷テストです。これは、必要な stress パッケージにより提供されるテストです。システムのストレステストを行う方法を探している場合に rhcert スイートの外部で使用できるストレスプログラムは、システム上で同時に複数のアクティビティーを起動し、障害を監視します。具体的には、各論理 CPU に平方根を計算するように指示し、malloc() ルーチンおよび free() ルーチンを使用してシステムにメモリーの負荷をかけ、それぞれメモリーを予約および解放し、sync() を呼び出してディスクへの書き込みを強制します。これらのアクティビティーは 10 分間継続し、その時間内に障害が発生しなければ、テストに合格します。ハードウェア認定テスト以外での使用を検討している場合は、man ページの stress を参照してください。
テストの準備
コアテストの唯一の準備は、ポリシーガイドに記載されている要件を満たす CPU をインストールすることです。
テストの実行
コアテストは非対話型です。次のコマンドを実行し、表示されるリストから適切な Core
テスト名を選択します。
rhcert-run
ランタイム、ベアメタル
コアテスト自体は、ベアメタルシステム上で約 12 分で実行できます。テストのジッター部分は 1〜2 分で終わり、ストレス部分はちょうど 10 分間実行されます。必要な supportable テストにより、全体の実行時間が約 1 分長くなります。
ランタイム、フルバータイプのゲスト
fv_core テストを KVM ゲストで実行すると、ベアメタル版よりもわずかに時間がかかり、約 14 分かかります。この時間は、ゲストのスタートアップ/シャットダウンのアクティビティーと、ゲスト内で実行される必要な supportable テストによるものです。ベアメタルシステムで必要な supportable テストにより、全体の実行時間が約 1 分長くなります。