vmemtest は、仮想メモリー (物理メモリーとディスクのスワップパーティションを合わせたもの) を検査します。
このテストは、中止してもすぐに停止しないことがあります。
このテストは、Solaris valloc (ページ境界揃え) システムコールを使用して、仮想メモリーの割り当て、書き込み、読み取り、比較を行います。これらの操作は、通常はシステムにページング動作を大量に発生させるため、オぺレーティングシステムに重い負荷をかける環境をシミュレートすることができます。このテストは、ECC パリティーエラー、メモリー読み取りエラー、アドレス指定の問題も検出し、障害に対応する仮想メモリーアドレスを表示します。
このテストは、使用可能なスワップ空間の大部分を使用するため、オぺレーティングシステムに大きな負荷がかかります。SunVTS テストを開始した後に SunVTS 以外のプロセスを起動する場合は、vmemtest のスワップ空間予約オプションを使用してください。スワップ空間の条件についての詳細は、『SunVTS 3.3 ユーザーマニュアル』の「スワップ空間条件」の説明を参照してください。
vmemtest は、オフラインの機能テスト (Functional Test) モードでのみ実行することができます。このモードでは、vmemtest テストは、ユーザーによって指定された量の仮想メモリーにパターンを書き込み、そのパターンを読み取って、元のパターンと比較します。一致しない場合は、その仮想アドレスを報告し、再度読み取って比較します。2 回目の比較でも一致しない場合は、仮想アドレスの物理アドレスへの変換を試みます (SunVTS 診断ドライバが組み込まれている場合のみ)。
/opt/SUNWvts/bin/vmemtest 標準引数 -o mode=数値, reserve=数値, amount=数値,bdinfo=数値r,cerr=数値,pp=パターン, up=16 進アドレス
表 44-2 vmemtest のコマンド行構文
引数 |
説明 |
---|---|
mode=page|regular |
vmemtest の実行モードを指定します。次のいずれかを選択します。 page - 書き込み・読み取りメモリーテストを、一度に 1 システムメモリーページずつ進めます。 regular - valloc で割り当てられたメモリー全体を、一度に 1 ロングワードずつ読み取って比較します。 |
reserve=数値 |
デフォルトのメモリー量に追加して予約する仮想メモリーの MB 量を指定します。 |
amount=数値 |
デフォルトのメモリー量の代わりに、テストするメモリーの MB 量を指定します。 |
bdinfo=数値 |
システムに搭載されているすべての CPU/メモリボードのボード番号情報を指定します。たとえば、ボード 0 と 5 がメモリーボードの場合は、bdinfo=33 (2**5 + 2**0) と入力します。 |
cerro=数値 |
メモリーエラーが発生したときにダンプされる連続エラーの最大個数を指定します。 |
pp=パターン |
テストに使用するパターンを指定します。パターンは以下の中から選択できます。 Address- テストするメモリー位置の仮想アドレスを使用します。 walk_1- 0x80000000 〜 0x00000001 から始まるパターンの内の 1 つを使用します。 walk_0- 0x7fff7fff 〜 0x7fff7ffe から始まるパターンの内の 1 つを使用します。 0x00000000- すべて 1 および 0 からなるパターンを使用します 0x5aa55aa5- 0x5aa55aa5 および 0xa55aa55a のパターンを使用します。 0xdb6db6db- 0xdb6db6db および 0x24924924 のパターンを使用します。 UserDefined- User Defined Pattern 領域で指定したパターンを使用します (下記を参照)。 |
up=16 進アドレス | 上記の pp 引数に UserDefined を設定した場合のみ使用します。例えば 0x2a341234 のように、8 桁の 16 進数形式でパターンを指定します。 |
64 ビットのテストは、sparcv9 サブディレクトリに格納されています (/opt/SUNWvts/bin/sparcv9/テスト名)。このディレクトリにテストが存在しない場合、そのテストは、32 ビットのテストとしてだけ実行することができます。詳細は、「32 ビットテストと 64 ビットテスト」を参照してください。
|
エラーメッセージ |
考えられる原因 |
対処方法 |
---|---|---|---|
6001 |
setrlimit(RLIMIT_DATA) failed to set to RLIM_INFINITY: エラーメッセージ |
テストプロセスのヒープサイズを 2GB に増やすことができませんでした (致命的なエラー)。 |
|
6002 |
Test terminated after finding maximum number (数値) of noncontiguous errors |
致命的なエラー |
|
6003 |
msync() failed: エラーメッセージ |
メモリーと物理記憶を同期できませんでした (致命的なエラー)。 |
|
6004 |
Test terminated after finding miscompared data |
テストに失敗しました (致命的なエラー)。 |
|
8001 |
Test completed. Found データ noncontiguous miscompare errors |
スワップパーティション不良 (致命的なエラー)。 |
購入先に問い合わせてください。 |
SCSI コントローラ不良 |
|
||
システムソフトウェアエラー |
|
||
8002 |
Increase swap space to allocate at least 数値 MB from the process' heap |
mem プロセスのヒープ領域を大きくすることができませんでした。 |
|
8003 |
Attempt to reserve more than what's been assigned |
致命的なエラー |
確保する容量を小さくしてください。 |
8004 |
valloc(アドレス) failed:エラーメッセージ |
致命的なエラー |
スワップ空間を大きくするか、システムの負荷を減らしてください。 |
8005 |
Open(ファイル名) failed:エラーメッセージ |
「ページ」モードで使用されるファイル名ファイルを開くことがませんでした。 |
|
8006 |
mmap() virtual Address アドレス to ファイル名 failed: エラーメッセージ |
「ページ」モードで使用されるファイル名ファイルの仮想アドレス位置の領域を割り当てられませんでした。 |
|
8007 |
munmap(アドレス) failed:エラーメッセージ |
「ページ」モードで使用されるファイル名ファイルの仮想アドレス位置の領域の割り当てを解消できませんでした (致命的なエラー)。 |
|
8008 |
close() failed on ファイル名: エラーメッセージ |
致命的なエラー |
|
8009 |
Not enough space to store miscompare information |
不一致データを書き込む空間を確保できませんでした (致命的なエラー)。 |
スワップ空間を大きくするか、システムの負荷を減らしてください。 |
8010 |
swapctl() failed: エラーメッセージ |
システムに設定されている量のスワップ空間を確保できませんでした (致命的なエラー)。 |
|
8011 |
calloc failed: エラー |
重大なエラー |
|
8012 |
getitimes() error: エラー |
重大なエラー |
|