Windows 2003 サーバーでスワップ領域の使用状況を監視したいと考えています。使用率が 10 分間で 80% を超えると、アラームが生成されます。RAM 用のツールはたくさんありますが、swap の使い方はどうでしょうか。その条件をシミュレートしてテストを行うにはどうすればよいですか?
2 に答える
組み込みのパフォーマンス カウンターを使用します。WMI/Win32_Perf 経由で取得できます。
http://msdn.microsoft.com/en-us/library/aa394270%28v=VS.85%29.aspx
または生のパフォーマンス カウンター/レジストリ インターフェイス:
http://msdn.microsoft.com/en-us/library/aa373083%28v=VS.85%29.aspx
ページ ファイルの使用を強制します。メモリのコミットを開始します。VirtualAlloc API 呼び出しを使用します。
LPVOID WINAPI VirtualAlloc(
__in_opt LPVOID lpAddress,
__in SIZE_T dwSize,
__in DWORD flAllocationType,
__in DWORD flProtect
);
flAllocationType を に設定するとMEM_COMMIT (0x1000)
、メモリの使用が開始されます。メモリが十分に使い果たされると、ページ ファイルが自動的に使用されます。使用量の測定を開始してから、必要な使用率がいつ発生するかをヒューリスティックに判断する必要があると思います。
それを監視するには、パフォーマンス カウンターを読み取ります。ページング ファイル セットには、読み取り可能な %usage カウンターがあります。それらを消費する方法については、ここから始めてください。必要なのは、情報を読み取り、適切なアラームを鳴らす Windows サービスを作成することだけです。
.Net : http://blogs.msdn.com/b/bclteam/archive/2006/06/02/618156.aspx C++ : http://msdn.microsoft.com/en-us/library/aa373219(v= VS.85).aspxまたはhttp://msdn.microsoft.com/en-us/library/aa373214(v=VS.85).aspx