DA0014: ディスクへのアクティブなメモリのページングが非常に高率で発生しています
規則 ID |
DA0014 |
[カテゴリ] |
メモリとページング |
プロファイル方法 |
すべて |
Message |
ディスクへのアクティブなメモリのページングが非常に高率で発生しています。アプリケーションがメモリ バインドされている可能性があります。 |
規則の種類 |
[警告] |
サンプリング、.NET メモリ、またはリソース競合メソッドを使用してプロファイリングを行うときは、この規則を呼び出すためのサンプルを少なくとも 25 個収集する必要があります。
原因
プロファイリングの実行中に収集されたシステム パフォーマンス データは、ディスクへのアクティブなメモリのページングがプロファイリング実行全体において非常に高率で発生していることを示しています。ページング率がこのレベルに達すると、通常、アプリケーションのパフォーマンスと応答性に影響します。アルゴリズムを修正してメモリ割り当てを減らすことを検討してください。また、アプリケーションのメモリ要件の検討が必要になることがあります。より多くのメモリを備えたコンピューターでプロファイリングを再度実行してください。
規則の説明
ディスクに対する過剰なページングは、物理メモリの不足が原因で発生する場合があります。ページング ファイルが存在する物理ディスクの大部分がページング操作によって使用される場合、この物理ディスク上におけるその他のアプリケーションに対するディスク操作の処理速度が遅くなる可能性があります。
多くの場合、ページのディスクへの読み書きは一括して実行されます。たとえば、1 秒あたりの出力ページ数は 1 秒あたりの書き込みページ数よりも大幅に大きくなることがよくあります。これは、1 秒あたりの出力ページ数には、システム ファイルのキャッシュで変更されたデータ ページも含まれるためです。ただし、どのプロセスがどういった理由で高いページング率の直接的な原因になっているのかを特定するのは、必ずしも容易なことではありません。
[!メモ]
この規則は、アクティブなメモリのページングが非常に高いレベルに達した場合に適用されます。ページングが高いレベルで発生しているが、非常に高くはない場合は、情報規則「DA0017: ディスクへのアクティブなメモリのページングが高率で発生しています。」が発生します。
違反の修正方法
[エラー一覧] ウィンドウに表示されたメッセージをダブルクリックして、[マーク] ビューに移動します。このビューで、[Memory\Pages/sec] 列を探します。ページングの入出力アクティビティの負荷よりも高い特定のプログラム実行フェーズがあるかどうかを確認します。
ロード テストのシナリオで ASP.NET アプリケーション用のプロファイル データを収集している場合は、追加の物理メモリ (または RAM) が構成されているコンピューターでもう一度ロード テストを実行してください。
アルゴリズムを修正し、String.Concat や String.Substring などのメモリ消費量の多い API の使用を控えることにより、メモリの割り当てを減らすことを検討してください。