ミニフィルター診断

このトピックは、ミニフィルター診断評価の 1 つを実行することによって生成される結果、または評価でミニフィルター診断モードを有効にすることによって生成される結果を解釈するのに役立ちます。 また、結果を使用して特定し、エンドユーザーのエクスペリエンスとコンピューターの体感パフォーマンスに悪影響を与える一般的な問題を解決する方法に関するガイダンスも提供します。

ミニフィルター ドライバーは、ファイル システムまたは別のファイル システム フィルターを対象にした要求をインターセプトするファイル システム フィルターです。 要求が当初の宛先に届く前にインターセプトすることで、フィルター ドライバーは、要求の当初の宛先によって提供する機能を拡張するか、その代わりをすることができます。 ファイル システム フィルター ドライバーの例には、ウイルス対策フィルター、バックアップ エージェント、暗号化および暗号化解除製品が含まれます。 フィルター ドライバーは、フィルター ドライバーという名前のレガシ ドライバーによって可能になります。

ミニフィルターは、ファイル I/O の前処理と後処理のためのコールバックを公開します。 フィルター ドライバーは、これらのコールバックを介してミニフィルターと通信します。 ミニフィルターは、標準 I/O を処理するために使用されます。 アプリケーションがメモリ マップ ファイルを使用するシナリオについては、「ファイル システム フィルター ドライバーのメモリ マップ ファイル」を参照してください。

ミニフィルター診断モードについて

ミニフィルターは、他のプロファイリング ソフトウェアを使用する場合よりも簡単にファイル I/O をインターセプトできるように設計されています。 ミニフィルターを使用しない場合、開発者はレガシ ドライバーを記述する必要がありますが、これは困難で間違いを招きやすくなります。

ミニフィルターを使用すると、ほとんどのファイル I/O でコードが実行されるため、そのパフォーマンスがアプリケーションとエンド ユーザー エクスペリエンスに大きな影響を与える可能性があります。 ミニフィルターが不十分なやり方で実装された場合、コンピューターの知覚される速度が低下する可能性があります。 ミニフィルター診断モードは、次の 3 つの I/O 負荷の高いタスクを実行することによってこのようなドライバーを識別するのに役立つように設計されています。

  • ファイルの移動、コピー、削除などの標準的なファイル システム操作。

  • アプリケーションを読み込み、そのすべての依存関係を読み込むために必要な I/O を監視します。

  • コンピューターを起動し、I/O を監視して、起動とシャットダウンのパフォーマンスに悪影響を与える可能性のあるミニフィルターを見つけることができるようにします。

評価の実行中にミニフィルター診断モードを有効にするための評価設定を含む 3 つの評価があります。 既定では、ミニフィルター診断モードはこれらの評価に対して無効になっています。

  • ファイル処理

  • Internet Explorer の起動時のパフォーマンス

  • ブート パフォーマンス ( 高速スタートアップ)

これらの 3 つの評価は、既定で有効になっているミニフィルター診断でも使用できます。 これらは、他の利用可能な評価と共に次のように表示されます。

  • ミニフィルター診断: ファイル処理

  • ミニフィルター診断: Internet Explorer

  • ミニフィルター診断: ブート パフォーマンス (高速スタートアップ)

(ミニフィルター診断を有効にして) 3 つの評価すべてを実行すると、ミニフィルターがどのようにシステムに影響するかを幅広く把握できます。 各評価では、特定のシナリオを実行し、システムにインストールされているミニフィルターの動作に関するデータを収集します。 このデータは、Windows アセスメント コンソール、Windows アセスメント サービス - クライアント (Windows ASC)、または Windows パフォーマンス アナライザー (WPA) を使用して分析できます。 評価ツールでは、WPA とは異なる方法でデータがグループ化されます。ただし、これらのすべてのツールで、ドリルダウンしてミニフィルターの効果を確認することができます。

"ミニフィルター診断: ファイル処理" 評価

"ミニフィルター診断: ファイル処理" 評価では、ファイル システム上のファイルの移動、コピー、削除などのファイル システム アクションが実行されます。 この評価では、これらの I/O の種類ごとに実時間とスループットが測定されます。 この評価の詳細については、「ファイル処理」を参照してください。

"ミニフィルター診断: ファイル処理" 評価では、必要に応じて、スループットに加えて、ファイル システム上のファイルのコピー、移動、または削除に必要な実時間などのデータが収集されます。 ドリルダウンしてすべての主要なミニフィルター コールバック ルーチンを表示すると、それぞれが呼び出された回数、呼び出しを完了するまでにかかった時間、および平均時間と最大時間がわかります。

ミニフィルター診断: Internet Explorer

"ミニフィルター診断: Internet Explorer" 評価では、新しい Internet Explorer ウィンドウに単純なコンテンツを含む単一のタブが開きます。 Internet Explorer は、依存する DLL が大量にある中規模から大規模のアプリケーションです。 この評価は、アプリケーションを起動し、インストールされたミニフィルターの動作を監視するためのプロキシとして機能します。 この評価の詳細については、「Internet Explorer の起動時のパフォーマンス」を参照してください。

"ミニフィルター診断: Internet Explorer" 評価では、フレームの作成、タブの作成、およびアプリケーションの起動にかかる時間などのデータが提供されます。 ドリルダウンしてすべての主要なミニフィルター コールバック ルーチンを表示すると、それぞれが呼び出された回数、呼び出しを完了するまでにかかった時間、および平均時間と最大時間がわかります。

ミニフィルター診断: ブート パフォーマンス (高速スタートアップ)

"ミニフィルター診断: ブート パフォーマンス (高速スタートアップ)" 評価では、システムを起動し、この重要な期間中の I/O アクティビティを監視します。 結果データは、ブートのフェーズごとに分類されます。 ブート プロセスには 17 のフェーズがあります。 特定のミニフィルターが複数のフェーズでブートに影響を与える可能性があります。 この評価の詳細については、「オン/オフ移行時のパフォーマンス」を参照してください。

ドリルダウンしてすべての主要なミニフィルター コールバック ルーチンを表示すると、それぞれが呼び出された回数、呼び出しを完了するまでにかかった時間、および平均時間と最大時間がわかります。

各評価に固有の結果の詳細については、以下を参照してください。

評価によって生成される問題には 2 種類あります。 まず、事前構成に関する問題があります。これには、評価を開始する前に表示されるエラーと警告に対処することによって制御できます。 評価を開始する前にこれらに対処しない場合、問題が生成され、評価結果に追加されます。 もう 1 種類の問題は、メトリック値がそのメトリックの目標と比較されたときに生成されます。 通常は、これらの問題から分析を開始します。 一部の問題に対しては、コンピューターを再構成して評価を再実行する必要があります。その他の問題は、潜在的な問題を明らかにする、評価中に取得された測定値です。

これらの 3 つの評価を実行することで、ミニフィルターが起動時に与える影響と、コンピューターの一般的な使用状況を確認できます。 結果では、評価シナリオに固有の問題が強調される場合があります。また、結果を使用して、ミニフィルターの問題を識別し、結果を比較することもできます。 たとえば、インストールされているウイルス対策 (AV) ソフトウェアだけが異なる 2 つの同一のシステムで評価を実行することにより、さまざまな AV パッケージがシステムに与える影響を比較できます。 また、同じ AV ソフトウェアがインストールされている 2 台の異なるコンピューターを比較することもできます。 または、1 台のコンピューターだけを使用して、1 つの AV プログラムがインストールされた状態で評価を実行したら、それをアンインストールして別の AV プログラムをインストールした後、3 つの評価を再度実行することもできます。 どちらの方法でも、すべての結果を開いて並べて比較し、分析を開始することができます。

メトリック

このセクションでは、主要なミニフィルター メトリック、これらのメトリックの結果が不十分な一般的な原因、および問題の一般的な修復方法について説明します。 また、このセクションでは、これらの各メトリックに最も影響を与える対象者の識別も試みます。

このセクションの内容は次のとおりです。

ミニフィルター メトリックの階層

ミニフィルター診断モードでは、期間メトリックが生成されます。 たとえば、ファイル処理評価に対してミニフィルター診断が有効になっている場合、ミニメトリック別にグループ化されたサブメトリックやコールバックの種類別にグループ化されたサブメトリックに加えて、コピー ワークロードの期間が表示されます。 ミニフィルター メトリックの基本的な階層を次の図に示します。

shows levels of results for minifilters

ミニフィルター メトリック値は、論理的なグループの下に深く入れ子になっています。 この結果の階層を使用して、関心のある結果が生成された評価ワークロードまたはフェーズの詳細を表示できます。 ワークロードの結果を展開すると、ミニフィルターの一覧と、各ワークロード レベルに集計されたそれぞれの結果が表示されます。 一覧から特定のミニフィルターを選択すると、そのミニフィルターに対して行われた呼び出しの一覧が表示されます。 興味深い呼び出しを選択すると、興味深い結果を生成した事前または事後の操作を確認できます。 次に例を示します。

Note

ファイル処理パフォーマンス評価では、最初の詳細レベルは "ワークロード" レベルと呼ばれます。 ブート パフォーマンス評価または Internet Explorer の起動時のパフォーマンス評価では、最初の詳細レベルは "フェーズ" レベルと呼ばれます。

sample results for minifilter drill down

このシナリオでは、CopyPG ワークロードの値は 14.494 でした。 その結果を展開すると、CopyPG ワークロードの値 11.541 の原因となっているのは minifilter1.sys ドライバーであることがわかります。 minifilter1.sys の結果を展開すると、値 11.541 のソースはクリーンアップ コールバック型であることがわかります。 クリーンアップ コールバック型を展開すると、値 11.541 が測定されたのは MiniFilterPreOpComp 操作であったことがわかります。

この方法を使用すると、特定の結果が生成される元となった操作、コールバック型、ミニフィルター、またはワークロードまたはフェーズを正確に証明することができます。 さらに、各 [グループ化] ドロップダウン ボタンには、既定では表示されない他のメトリックが表示されます。 これらの追加のカテゴリのいずれかを選択すると、分析のためのメトリックがさらに表示されます。

最長遅延

最長遅延メトリックは、評価の実行中にトレースで検出された最長遅延です。 このメトリックは、作成、制御、クリーンアップ、情報、読み取り、書き込み、ロック取得操作など、すべての主要な I/O 操作に使用できます。 このメトリックの値が大きい場合は、ファイル操作、Internet Explorer の起動、およびブート時の知覚できる停止を示す場合があります。

主な適用対象: ミニフィルターの ISV が、ミニフィルターの実装方法によって、このメトリックに最も大きく直接的な影響を及ぼします。 エンド ユーザーと OEM が、インストールするミニフィルター製品に基づいて、このメトリックに間接的な影響を及ぼします。

一般的な影響要因

このメトリックの値が大きい場合は、通常、評価中にシステムで実行されたバックグラウンド アクティビティに原因がありますが、不適切なミニフィルター設計も原因となる可能性があります。 特定のワークロード (コピーなど) の場合、ファイルのサイズもこのメトリックに影響を与える可能性があります。

分析と修復の手順

ミニフィルターの結果を使用して単一のソフトウェア コンポーネントのパフォーマンス低下を識別する場合、同じコンポーネントの 2 つのバージョンに対して評価を実行して作成された結果を比較するか、異なるアプリケーション作成者からの 2 つの類似した製品の結果を比較することが最も適切です。

最初の手順は、最も長い遅延を見つけることです。 これを行うには、[Minifilter Details] (ミニフィルターの詳細) を展開し、[Longest Delay] (最長遅延) 列を右クリックして、[並べ替え (降順)] を選択します。

結果データの忠実性を確保するには:

  • バックグラウンドで実行されているすべてのアプリケーションを終了します。

  • プライマリ コンポーネントが識別されたら、他のオプション サービスを停止した後で比較のためにもう一度評価を実行することで影響を切り分けることを検討します。

  • この評価を実行するときにシステムにメモリの負荷がかかっていないことことを確認します。

  • 評価を複数回実行して、メトリック値が一時的なファイル システム イベント (キャッシュ フラッシュなど) の結果ではないことを確認します。

  • 評価によって発生した警告または問題に対処して、それらが表示されないようにします。

  • ミニフィルターは、多くの場合、サービスに関連付けられます。

これらの手順で問題が解決しない場合は、ミニフィルター製品を、同様の機能を提供する別の製品に置き換えることを検討するか、ミニフィルターの別のバージョンをテストしてください。

問題の根本原因を見つけたいアプリケーション開発者は、WPA でトレースを開くことで、より詳細な分析を実行できます。 WPA のミニフィルター遅延の分析ビューは、詳細な分析の開始点として適しています。 3 つの評価すべてを実行した場合は、いくつかの ETL ファイル (FileOrg.etl、IELaunch_Warm_1、IELaunch_Warm_2、IELaunch_Warm_3、IELaunch_Cold_1) と、ブート評価に関する FastStartup_Analysis-* という名前のいくつかの ETL ファイルが作成されます。 これらの .etl ファイルは、WPA を理解している人ならだれでも使用できます。

ミニフィルター遅延

ミニフィルター遅延は、ミニフィルターによって費やされた累積時間の尺度です。 このメトリックは、ミニフィルターによって使用された時間と、評価中に実行された他のアクティビティによって使用された時間を示します。 このメトリックの値が大きい場合は、ユーザーがファイル操作を実行するときの応答性が低くなる可能性を示す場合があります。

主な適用対象: ミニフィルターの ISV が、ミニフィルターの実装方法によって、このメトリックに最も大きく直接的な影響を及ぼします。 エンド ユーザーと OEM が、インストールするミニフィルター製品に基づいて、このメトリックに間接的な影響を及ぼします。

一般的な影響要因

このメトリックの値が大きい場合は、通常、効果の弱いミニフィルター設計に原因があります。 特定のワークロード (コピーなど) では、ファイルのサイズ、数、および種類もこのメトリックに影響を与える可能性があります。 たとえば、メディア ファイルとテキスト ファイルの違いが該当します。

分析と修復の手順

結果データの忠実性を確保するには

  • バックグラウンドで実行されているすべてのアプリケーションを終了します。

  • プライマリ コンポーネントが識別されたら、他のオプション サービスを停止した後で比較のためにもう一度評価を実行することで影響を切り分けることを検討します。

  • この評価を実行するときにシステムにメモリの負荷がかかっていないことことを確認します。

  • 評価を複数回実行して、メトリック値が一時的なファイル システム イベント (キャッシュ フラッシュなど) の結果ではないことを確認します。

  • 評価によって発生した警告または問題に対処して、それらが表示されないようにします。

  • 上位の遅延の中でパターンを見つけます。

これらの手順で問題が解決しない場合は、ミニフィルター製品を、同様の機能を提供する別の製品に置き換えることを検討するか、ミニフィルターの別のバージョンをテストしてください。

問題の根本原因を突き止めようとしているアプリケーション開発者は、WPA でトレースを開くことで、より詳細な分析を実行できます。 ミニフィルター遅延の分析ビューは、詳細な分析の開始点として適しています。 3 つの評価すべてを実行した場合は、いくつかの ETL ファイル (FileOrg.etl、IELaunch_Warm_1、IELaunch_Warm_2、IELaunch_Warm_3、IELaunch_Cold_1) と、ブート評価に関する FastStartup_Analysis-* という名前の ETL ファイルのホストが作成されます。これらの .etl ファイルは、WPA を理解している人ならだれでも使用できます。

平均呼び出し時間

このメトリックは、各コールバックで費やされた時間の平均値です。 このメトリックの値が大きい場合は、ファイル操作時の知覚できる遅延を示す場合があります。 最長の遅延メトリックが特定の問題または原因を示している可能性がある場合、その平均はミニフィルターの全体的な動作の正しい尺度になります。 ただし、平均を使用するだけでは、多数の同一の呼び出しや 1 つの非常に大きな遅延などの極端なケースが見落とされる可能性があります。

主な適用対象: ミニフィルターの ISV が、ミニフィルターの実装方法によって、このメトリックに最も大きく直接的な影響を及ぼします。 エンド ユーザーと OEM が、インストールするミニフィルター製品に基づいて、このメトリックに間接的な影響を及ぼします。

一般的な影響要因

このメトリックの値が大きい場合は、ミニフィルターの設計が正しくないことに原因がある可能性があります。 特定のワークロード (コピー) の場合、操作対象のファイルのサイズもこのメトリックに影響を与える可能性があります。

分析と修復の手順

ミニフィルター メトリックを使用して単一のソフトウェア コンポーネントのパフォーマンス低下を識別する場合、同じコンポーネントの 2 つのバージョンから結果を作成し、これらを比較してパフォーマンス低下を調べるか、異なるアプリケーション作成者からの 2 つの類似した製品の結果を比較することが最も適切です。

平均呼び出し時間は、ミニフィルター遅延メトリックで返される結果に視点を与えるための目標コンテキスト情報を提供します。 結果の比較においてミニフィルター遅延メトリックが増加し、平均が増加しない場合、ミニフィルター遅延メトリックの増加は、通常、問題を示しません。 ミニフィルター遅延と平均呼び出し時間の傾向が同じ向きになっている場合、ミニフィルター遅延メトリックの増加は、通常、パフォーマンスの変化を示します。

この種類の問題の根本点原因を見つけるには、上位の遅延の中でパターンを見つけます。

これらの手順で問題が解決しない場合は、ミニフィルター製品を、同様の機能を提供する別の製品に置き換えることを検討するか、ミニフィルターの別のバージョンをテストしてください。

ミニフィルター コールバック

このメトリックは、システム上で実行されているオペレーティング システムまたはその他のアプリケーションやサービスによってミニフィルターが呼び出された回数です。 ドリルダウンして、さまざまな種類のコールバックのこの数値を確認できます。

主な適用対象: エンド ユーザーと OEM が、インストールするミニフィルター製品、およびこのメトリックに影響を及ぼすサービスとアプリケーションをアンインストールする機能に基づいて、このメトリックに間接的な影響を及ぼします。

このメトリックはシステムにインストールされているアプリケーションにのみ依存するため、修復手順はありません。

Windows Assessment Toolkit

評価

オン/オフ切り替えのパフォーマンス