次の方法で共有


ScatterGather (システム)

このテストでは、ReadFile/WriteFile/ReadFileScatter/WriteFileGather API を使用して、主に非同期的にファイル システム I/O の信頼性シナリオを検証します。 HLK テストでは、定義済みの自動回帰バリエーションが実行されます。

テストの詳細

   
仕様
  • System.Fundamentals.StorageAndBoot.BootPerformance
プラットフォーム
  • Windows 10、クライアント エディション (x86)
  • Windows 10、クライアント エディション (x64)
サポートされているリリース
  • Windows 10
  • Windows 10 バージョン 1511
  • Windows 10 Version 1607
  • Windows 10 Version 1703
  • Windows 10 バージョン 1709
  • Windows 10 バージョン 1803
  • Windows 10 Version 1809
  • Windows 10 バージョン 1903
  • Windows 10 への次の更新プログラム
予想される実行時間 (分) 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

読み取り/書き込みモード:

  • RW (読み取り、書き込み)

  • RWG (読み取り、書き込みギャザー)

  • RSW (読み取りスキャッター、書き込み)

  • RSWG (読み取りスキャッター、書き込みギャザー)

  • RRW (ランダム読み取り、書き込み)

  • RRWG (ランダム読み取り、書き込みギャザー)

  • RWR (読み取り、ランダム書き込み)

  • RSWR (読み取りスキャッター、ランダム書き込み)

  • RRWR (ランダム読み取り、ランダム書き込み - 約 50% のスキャッター/ギャザー) - > 既定値

  • RRWR7 (ランダム読み取り、ランダム書き込み - 約 30% のスキャッター/ギャザー)

  • RRWR3 (ランダム読み取り、ランダム書き込み - 約 70% のスキャッター/ギャザー)

-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