Q

Windows NT Server 4.0からWindows 2000 Serverに移行しました。Windows NT Server 4.0では,リソース・キットのツールを使ってパフォーマンス関連ログの収集を自動実行/停止していたのですが,Windows 2000 Serverでは,同じことができずに困っています。どうすればよいのでしょうか?


図1●[パフォーマンスログと警告]で設定したカウンタ・ログには[スケジュール]タブがある
ここで開始時刻や終了時刻を指定することで,自動実行や停止が可能となる。
A

Windows 2000では,Windows NTでパフォーマンス・モニタとして提供していた機能が[パフォーマンスログと警告]というマイクロソフト管理コンソール(MMC)のスナップインになっており,ユーザー・インターフェースが大きく変わっています。このスナップインでログ収集の自動実行や停止を実現するには,設定した各カウンタ・ログのプロパティにある[スケジュール]タブで時刻を設定します(図1)。

 ただし,スケジュールを設定しても,マシンを再起動するとログの収集は停止してしまいます。再起動後もログの収集を自動的に開始させるには,管理ツールの[サービス]で[Performance Logs and Alerts]サービスのスタートアップを「自動」に設定した上で,図1の画面の[ログの停止]をデフォルトの「手動」以外にしておく必要があります。

 この標準機能では1つのログに対して1回の自動起動/終了しか設定できず,定期的に実行することはできません。OS標準のタスク機能も使えないので,定常的な運用には使い勝手がよいとはいえません。このため,Windows NTを使っていたユーザーでは,従来と同じ運用ができないと不満を持つ場合も多いでしょう。

標準機能では定常的な運用が困難
リソース・キットでNT互換の環境を実現

 実は,Windows 2000のリソース・キットには,Windows NT互換のパフォーマンス・モニタがPerformance Monitor 4(perfmon4.exe)という名称で収録されています。これとWindows NT Server 4.0のリソース・キットに収録されているmonitor.exeやdatalog.exeを組み合わせることで,Windows NTとまったく同じ方法でパフォーマンス・モニタを制御可能です。

 まず,Windows NT Server 4.0のリソース・キットに含まれているmonitor.exeとdatalog.exeを,あらかじめWindows 2000マシンの%SystemRoot%\System32にコピーします。その上でWindows 2000のリソース・キットにあるperfmon4.exeを起動し,メニューの[View]-[Log]で取得するオブジェクトの種類やログ・ファイルの出力場所,取得間隔などを設定します(図2)。最後に,[File]-[Save Workspace]で,設定内容をファイルとして%Systemroot%\System32に保存します。ここでは仮にtest.pmwという名称としましょう。


△ 図をクリックすると拡大されます
図2●Windows 2000リソース・キットのPerformance Toolsの中にWindows NTのパフォーマンス・モニタと同じツールがPerformance Monitor 4として収録されている

△ 図をクリックすると拡大されます
図3●コマンド・プロンプトからmonitorコマンドを使うことでパフォーマンス・モニタの制御が可能になる

 それから,コマンド・プロンプトで「monitor setup」を実行すると,「monitor service」というサービスが登録されパフォーマンス・モニタの制御が可能になります(図3)。このときに[Failed to create service ***]というメッセージが出力されますが,実際には問題なくサービスは作成されています。

 この状態で,「monitor test.pmw」というコマンドを実行して,先ほどパフォーマンス・モニタで保存したファイルを関連付けます。これにより,「monitor start」と「monitor stop」のコマンドでパフォーマンス・モニタの制御が可能になります。後はタスク機能などを使って,このコマンドを適宜実行するようにしてください。

Windows XP以降では標準で
コマンド・プロンプトから制御可能に

 なお,こうした問題点を踏まえて,Windows XPではlogmanというコマンドが新たに追加されています。このコマンドを使うと,[パフォーマンスログと警告]サービスの動作をコマンド・ラインから細かく制御できます。このlogmanコマンドはWindows .NET Server 2003でも提供される予定ですので,タスク機能を組み合わせることで,今後はきめ細かいパフォーマンス・ログの取得も可能となります。

高橋基信