ScatterGather (システム)
このテストでは、ReadFile/WriteFile/ReadFileScatter/WriteFileGather API を使用して、主に非同期的にファイル システム I/O の信頼性シナリオを検証します。 HLK テストでは、定義済みの自動回帰バリエーションが実行されます。
テストの詳細
仕様 |
|
プラットフォーム |
|
サポートされているリリース |
|
予想される実行時間 (分) | 240 |
カテゴリ | シナリオ |
タイムアウト (分) | 14400 |
再起動が必要です | false |
特別な構成が必要です | false |
Type | automatic |
その他のドキュメント
この機能領域のテストには、前提条件、セットアップ、トラブルシューティング情報など、次のトピックに記載されている追加のドキュメントが含まれている場合があります。
テストの実行
テストを実行する前に、「WDTF System Fundamentals のテストの前提条件」のテスト要件の説明に従って、テストのセットアップを完了します。
I/O 完了ポートを利用してマルチスレッド方式で I/O (書き込みと読み取りの両方) を同時に実行し、I/O を完了します。 最初に、ファイルの EOF を設定し、I/O スレッドをスケジュールします。 ファイルの書き込み中に、ゼロまたはオフセット計算値を想定しているオンライン検証が実行されます。 ファイル全体が書き込まれると、ファイルの完全な検証が実行され、ゼロまたは想定外の値が検出された場合、テストは失敗します。
トラブルシューティング
HLK テスト エラーの一般的なトラブルシューティングについては、「Windows HLK テストのエラーのトラブルシューティング」を参照してください。
トラブルシューティング情報については、「System Fundamentals テストのトラブルシューティング」を参照してください。
このテストでは Pass (合格) または Fail (不合格) が返されます。 テストの詳細を確認するには、Windows Hardware Lab Kit (Windows HLK) Studio のテスト ログを確認します。
詳細情報
サポートされているテスト モード:
ほとんどのユーザーは、定義済みの回帰バリエーションを使用するはずです。
既定、回帰 (定義済みのバリエーション)、およびストレスは、仮想割り当ての再試行など、特定の種類の失敗を示します。既定のモードでは、ユーザーがパラメーターを手動で指定しない場合にほとんどのパラメーターを管理する flagsauto フラグがあります。 また、既定およびストレス モードでは、タイマー機能もサポートされています。 回帰モードでは、定義済みのタイマー バリエーションがあります。
サポートされている読み取り/書き込みモード:
読み取り/書き込みモード:
RW (読み取り、書き込み)
RWG (読み取り、書き込みギャザー)
RSW (読み取りスキャッター、書き込み)
RSWG (読み取りスキャッター、書き込みギャザー)
RRW (ランダム読み取り、書き込み)
RRWG (ランダム読み取り、書き込みギャザー)
RWR (読み取り、ランダム書き込み)
RSWR (読み取りスキャッター、ランダム書き込み)
RRWR (ランダム読み取り、ランダム書き込み - 約 50% のスキャッター/ギャザー) - > 既定値
RRWR7 (ランダム読み取り、ランダム書き込み - 約 30% のスキャッター/ギャザー)
RRWR3 (ランダム読み取り、ランダム書き込み - 約 70% のスキャッター/ギャザー)
さらに、このテストでは逆方向読み取りと逆方向書き込みもサポートされています。
I/O スロットル メカニズム:
制御された IO 要求の上限および下限しきい値がサポートされています。 基本的にシステムで I/O を発生させるバイパス モードも指定できます。
データ パターン:
簡易オフセット計算されたアルファベット値。 ただし、タイマー バリエーションの場合は、ホールが存在する可能性があります。
データ検証モード:
オンライン (書き込みと同時に検証)、完全チェック (すべての書き込みの完了後)、およびオフラインの検証モードをサポートしています。 これらのモードはすべてオフ/オンにできます。 オンライン検証がオフになっている場合、基本的には初期フェーズ中は書き込みのみが行われ、その後に完全チェックが行われます。
オンラインと完全チェックの違いは、完全チェックはすべての書き込みがシングル スレッドで完了した後にのみ行われるのに対し、オンライン検証は書き込み中に同時に行われ、その間はゼロまたはオフセット計算値が想定され、オフセット計算値のみを想定している完全チェックとは異なっている点です。
コマンドの使用方法
コマンド | 説明 |
---|---|
ScatterMultiThread.exe -default -rwmode:rw -iomode:sync |
既定のファイル サイズを使用して、同期モードで読み取り/書き込み IO を実行します。 |
ScatterMultiThread.exe -default -rwmode:RSWG -RR -RER:2 -TESTPATH:d:\Scatter -FILESIZE:500m |
ランダム オフセットと逆方向読み取りを使用して、testpath で指定された 500 m のファイルの完全なスキャッター/ギャザーを実行します。 |
ScatterMultiThread.exe -default -rwmode:RRWR -FILESIZE:2g -IODIFFUPPERTHRESHOLD:500 -IODIFFLOWERTHRESHOLD:100 |
I/O の上限および下限しきい値を使用して、2 GB のファイルの 50% のスキャッター/ギャザー IO を実行します |
ScatterMultiThread.exe -regression -regression:6 |
定義済みの回帰バリエーション 6 を実行します。 |
ScatterMultiThread.exe -stress -RWMODE:rrwr -THREADS:2 -BS:100k |
I/O ブロック サイズが 100k の 2 つのリーダー スレッドと 2 つのライター スレッドを使用して、ストレス モードでスキャッター/ギャザーを実行します。 |
ScatterMultiThread.exe -default -FILE:timer.dat -timer:19s -FILESIZE:5g -ONLINEVERIFY:FALSE |
タイマー モードでの ReadWrite バッファーなし I/O (OnlineVerify モードなし)。 |
ScatterMultiThread.exe -default -OFFLINEVERIFY -FILE:timer.dat -FULLCHECK:FALSE -ALLOWZERO4VERIFY |
fullcheck が無効で AllowZero4Verify モードありの、上記のバリエーションのオフライン検証。 |
コマンド構文
コマンド オプション | 説明 |
---|---|
ScatterMultiThread.exe |
テスト用のコマンド ライン オプションを以下に示します。 |
-help または /? |
ヘルプを表示します。 |
-default |
コマンド ラインのテスト パラメーターを使用して、既定のバリエーションを実行します。 |
-stress |
ストレス モード。 失敗したメモリ割り当てなどを再試行します。 |
-regression |
回帰モード。 定義済みの回帰モードを実行します。 |
-testpath |
ファイルへの完全なパス。 既定値: CWD |
-file |
testpath 内のファイル、またはファイルへの完全なパス。 既定値: Scatter.dat |
-filesize |
ファイル サイズ (バイト)。 k、m、g、または t を付加することもできます。 既定値: 1m |
-threads |
排他的なリーダーおよびライター スレッドの数。 既定値: 2 |
-completionthreads |
完了スレッドの数。 既定値: プロセッサ数の 2 倍の数 |
-rwmode |
読み取り/書き込みモード:
|
-iomode |
同期または非同期 既定値: async |
-flagsauto |
TRUE または FALSE 既定値: TRUE
注
特定のファイル フラグが、状況に応じて自動的に管理されます |
-ffnb |
TRUE または FALSE 既定値: FALSE
注
スキャッター/ギャザーなどの特定の状況では、FILE_FLAG_NO_BUFFERING が自動的にオンになります。 |
-ffss |
TRUE または FALSE 既定値: FALSE
注
シリアル化された I/O などの特定の状況では、FILE_FLAG_SEQUENTIAL_SCAN が自動的にオンになります。 |
-ffra |
TRUE または FALSE 既定値: FALSE
注
ランダム I/O などの特定の状況では、FILE_FLAG_RANDOM_ACCESS が自動的にオンになります。 |
-ffwt |
TRUE または FALSE 既定値: FALSE
注
手動で指定しない限り、FILE_FLAG_WRITE_THROUGH は自動的にオンにはなりません。 ファイルのフラグと属性を個別に管理する場合は、FLAGSAUTO フラグを無効にします。 FLAGSAUTO の動作は、共有ファイル ハンドルや逆方向 I/O などの他のパラメーターに応じて変わります。 ファイル システムでキャッシュ I/O がサポートされておらず、FFNB がファイル システムでサポートされていないか指定されていない場合、FFSS および FFRA フラグは効果がありません。 FFSS および FFRA フラグは相互に排他的であり、自己完結型であるため、組み合わせることはできません。 |
-bs |
ブロック サイズ (バイト)。 k、m、g、または t を付加できます。 既定値: 64k |
-bypass |
I/O しきい値の待機をバイパスします。 TRUE または FALSE を指定できます。 既定値: FALSE |
-nsegments |
スキャッター/ギャザーのセグメント配列のサイズ。 既定値: 16
注
このオプションは、スキャッター/ギャザーの特定の状況で自動的に修正されます。 |
-totalsleep |
失敗した仮想割り当てまたは I/O しきい値のシナリオの合計スリープ時間。 既定値: 30 分 |
-sleepint |
失敗した仮想割り当てシナリオのループ スリープ間隔 既定値: 2 分 |
-iodifferupperthreshold |
発行している I/O 要求の上限しきい値。 既定値: 1000 |
-iodifflowerthreshold |
下限しきい値。I/O diff がこの数を下回ると、要求された I/O が再開されます。 既定値: 100
注
このオプションはバイパス モードと相互に排他的であり、バイパス モードがオンの場合は無視されます。 |
-wfw |
ライター (WFW) フラグは、読み取りが発生する前に WriterThreads が実行されるのを待機します。 このオプションには、true または false を指定できます。 既定値: FALSE |
-rr |
ランダム オフセット読み取り (RR) オプションを使用すると、ReaderThreads がランダム オフセットで開始されます。 この値は、true または false のいずれかになります。 既定値: TRUE |
-rw |
ランダム オフセット書き込み (RW) オプションを使用すると、WriterThreads がランダム オフセットで開始されます。 この値は、true または false のいずれかになります。 既定値: FALSE |
-rer |
開始オフセットからの逆方向読み取り。 この値は、0、1、2 のいずれかになります。 既定値: 2 |
-rew |
開始オフセットからの逆方向書き込み。 この値は、0、1、2 のいずれかになります。 既定値: 0
注
RER および REW フラグでは、0 は反転がないことを意味し、1 は単純反転を意味し、2 はランダム反転を意味します (常に適用されるとは限りません)。 RER および REW フラグでは、完全なファイル I/O が完了していない場合があり、レポートされた統計情報と結果が不正確になる可能性があります。 |
-timer |
タイマー モード (秒)。 s、m、h を付加できます。 既定値: 0 これにより、タイマーの有効期限が切れるまで I/O が実行されます。 |
-timerloop |
タイマー ループ間隔 (秒)。 s、m、h を付加できます。 既定値: タイマー オプションと同じ
注
タイマー オプションは要求を発行する場合にのみ使用され、完了処理は引き続き行われます (完了にはタイマーは適用されません)。 |
-onlineverify |
オンライン モードで書き込み要求を発行した後にファイルの内容を検証します。 既定値: TRUE |
-offlineverify |
テストを再度実行することで、ファイルの内容をオフライン モードで検証します。 既定値: FALSE |
-allowzero4verify |
完全な検証 (オフラインまたはオンライン) にゼロを含めることができます。 既定値: FALSE |
-onlyzero4verify |
完全な検証 (オフラインまたはオンライン) にゼロを含めることができます。 既定値: FALSE |
-sharedfh |
すべての I/O に同じファイル ハンドルを使用できます。 既定値: FALSE |
-regression |
回帰バリエーション。 この値は、-1 - 10 または 1001 (すべてのバリエーションを参照) のいずれかになります 既定値: 0 (回帰なし) |
-displayprogress |
I/O の進行状況 (秒) を表示します。s、m、h を付加できます。 既定値: 2m |
-fullcheck |
オンラインまたはオフラインで検証した後のデータの完全な検証。 既定値: true |
-dbgcheck |
失敗時にカーネル デバッガーを中断します。 この値は、true または false のいずれかになります。 既定値: true |
-toleratesurpriseremove |
SurpriseRemove の失敗時にカーネル デバッガーを中断しません。 この値は、true または false のいずれかになります。 既定値: false |
-toleraterepair |
修復に失敗したときにカーネル デバッガーを中断しません。 この値は、true または false のいずれかになります。 既定値: false |
-toleratefailio |
FailIO の失敗時にカーネル デバッガーを中断しません。 この値は、true または false のいずれかになります。 既定値: false |
-exitonerror |
失敗時に終了します。 この値は、true または false のいずれかになります。 既定値: False |
Note
このテストのコマンド ライン ヘルプを表示するには、「/?」と入力します。
ファイル一覧
ファイル | 場所 |
---|---|
ScatterMultiThread.exe |
<[testbinroot]>\NTTest\BASETEST\core_file_services\NTFS\ScatterGather\ |
ntlog.dll |
<[osbinroot]>\NTTest\CommonTest\NtLog\ |
ntlogger.ini |
<[osbinroot]>\NTTest\CommonTest\NtLog\ |
stresslog.dll |
<[osbinroot]>\basetest\core_file_services\shared_libs\ |
fbslog.dll |
<[osbinroot]>\basetest\core_file_services\shared_libs\fbslog\ |
パラメーター
パラメーター名 | パラメーターの説明 |
---|---|
LLU_NetAccessOnly | |
TEST_PATH |