いくつかのイベントが発生したときにWindows2003でディスクIO統計を抽出することを検討しています。たとえば、CPUリソースを長時間待機している長いフルGCが発生します。ProcessExplorerで次のことが可能になることを読みました。これを行うには、GUIベースのアプリケーションであるため、問題がいつ再び発生するかを知っている必要があり、サーバーに既にログインしている必要があります。ただし、いつ発生するかわからないため、次のことを行う必要があります。最後のGCにx秒以上かかったときに、ディスクIO統計を出力するスクリプトを記述します。
そのプログラムを呼び出すだけで結果を出力できるような、そのようなコマンドラインツールがすでに利用可能になっていますか?
収集しようとしているデータの正確な種類はわかりませんが、すべてのperfmonカウンターデータは、Server 2003でも typeperf
コマンドラインユーティリティ から入手できます。
使用可能なカウンターのリスト(インスタンスなし):
typeperf -q
10秒間の合計CPU使用率を1回サンプリングし、以下を返します。
typeperf "Processor(_Total)\% Processor Time" -si 10 -sc 1
一般に、perfmon GUIを介して使用できるすべてのカウンターは、typeperfを介して同じ名前で使用することもできます。非MUIシステムでは名前 ローカライズされる場合があります であることに注意してください。
前の答えは良いですが、その例はディスクIOではなくプロセッサ用です。これがそのためのものです:
typeperf -si 2 "\LogicalDisk(_Total)\Disk Bytes/sec"