Windowsパフォーマンスログを収集する

テクニカルメモ

WebFOCUSをWindows上で使用する場合、OS内での性能課題が発生することがあります。

問題調査のため、OSリソースの利用状況を確認することとなります。Windows OSのパフォーマンスを確認するためには、OSに付属しているパフォーマンスモニターを使用します。パフォーマンスモニターは、リアルタイムに現在の状態を確認することもできますが、状態をログとして保管しておき、事象が発生した際にリソース状況を確認するといった使い方ができます。

パフォーマンスモニターを使用して、OSのパフォーマンスログを収集する方法をご紹介します。

パフォーマンスモニターを起動する

下記のいずれかにて、パフォーマンスモニターを起動します。

  • [コントロールパネル] – [管理ツール] から [パフォーマンス モニター] を起動します。
  • [Winキー] + S から「パフォーマンス」を入力して、[パフォーマンス モニター] を起動します。
  • [ファイル名を指定して実行] から「perfmon」を入力して、[パフォーマンス モニター] を起動します。

パフォーマンスモニターが起動することを確認します。

パフォーマンスログ収集設定

取得するパフォーマンスカウンターを決定します。

WebFOCUSの調査時に参考とするパフォーマンスカウンターを設定します。

パフォーマンスカウンター設定用ファイルを作成する

メモ帳などのテキストエディタで下記の内容にてテキストファイルを作成します。

\Cache\*
\LogicalDisk(*)\*
\Memory\*
\Network Adapter(*)\*
\Network Interface(*)\*
\Objects\*
\Paging File(*)\% Usage
\PhysicalDisk(*)\*
\Process(*)\*
\Processor Information(*)\*
\Server\*
\Server Work Queues(*)\*
\System\*
\TCPv4\*

後述する収集設定用のコマンドにて、指定するファイル名となりますので、わかりやすい任意の名称で、任意の場所へ保存してください。

ここでは「perfmon.txt」という名称で「C:\work」へ保存しています。

こちらからダウンロードもできます。「名前を付けて保存」してください。

パフォーマンスカウンターの説明については、下記手順にて確認できます。

パフォーマンスカウンター説明確認手順

[パフォーマンス] – [モニターツール] – [パフォーマンス モニター] を選択して、ウィンドウ右ペイン内のキャンバス内を右クリックします。

[カウンターの追加] をクリックします。

任意の項目を選択して、最下部の[説明を表示する]のチェックを有効とすることで、説明を確認することができます。

WebFOCUSでの性能課題調査用に取得する項目の説明です。
取得目的によって、パフォーマンスカウンターの追加・削除を変更してください。

パフォーマンスカウンター説明
パフォーマンスカウンター説明
CacheCache パフォーマンス オブジェクトには、ディスクから読み取る必要なしにデータへのアクセス許可がある限り使用されているデータを保管する物理メモリの領域である、ファイル システム キャッシュを監視するカウンターがあります。キャッシュは、通常アプリケーションに使用されるため、アプリケーションの I/O 操作のインジケーターとして監視されます。メモリが十分にある場合にはキャッシュのサイズは大きくなりますが、メモリが少ない場合にはキャッシュのサイズも小さくなり効果的でなくなります。
LogicalDiskLogical Disk パフォーマンス オブジェクトには、ハード ディスクまたは固定ディスク ドライブの論理パーティションを監視するカウンターがあります。パフォーマンス モニターは、論理ディスクを C などのドライブ文字で認識します。
MemoryMemory パフォーマンス オブジェクトには、物理メモリおよび仮想メモリの動作を表示するカウンターがあります。物理メモリはランダム アクセス メモリの領域です。仮想メモリは物理メモリ内とディスク上の領域からなります。メモリのカウンターの多くは、ページング (ディスクと物理メモリの間で起こるコードとデータのページ移動) を監視します。過度なページングによるメモリ不足は、システム処理の遅延の原因となります。
Network AdapterNetwork Adapter パフォーマンス オブジェクトには、物理または仮想ネットワーク接続を使用したバイトとパケットの送受信のレートを計測するカウンターがあります。接続エラーを監視するカウンターも含まれます。
Network InterfaceNetwork Interface パフォーマンス オブジェクトには、ネットワーク接続を使用したバイトとパケットの送受信のレートを計測するカウンターがあります。接続エラーを監視するカウンターも含まれます。
ObjectsObject パフォーマンス オブジェクトには、プロセス、スレッド、ミューテックスおよびセマフォなどのシステムの論理オブジェクトを監視するカウンターがあります。このカウンターの情報によって、不必要なリソースの消費を検出できます。 各オブジェクトは、オブジェクトの基本情報を格納するメモリが必要です。
Paging FilePaging File パフォーマンス オブジェクトには、ページング ファイルを監視するカウンターがあります。ページング ファイルは、コミットされた物理メモリをバックアップするディスクで予約された領域です。
PhysicalDiskPhysical Disk パフォーマンス オブジェクトには、ハード ディスクまたは固定ディスク ドライブを監視するカウンターがあります。ディスクは、ファイル、プログラム、ページング データの格納に使用され、これらを取り出すために読み取られたり、変更を記録するために書き込まれたりします。物理ディスク カウンターの値は、分割された論理ディスク (またはパーティション) の合計値となります。
ProcessProcess パフォーマンス オブジェクトには、実行中のプログラムとシステム処理を監視するカウンターがあります。プロセス内のすべてのスレッドは同じアドレス領域を共有し、同じデータへアクセスします。
Processor Informationプロセッサ情報パフォーマンス カウンター セットには、プロセッサの処理状況のアスペクトを計測するカウンターがあります。プロセッサは、算術および論理計算の実行、周辺機器の操作の初期化、プロセスのスレッドの実行を行うコンピューターの一部です。コンピューターには複数のプロセッサが存在します。一部のコンピューターでは、プロセッサは物理メモリなどのハードウェア リソースを共有する NUMA ノードにまとめられています。プロセッサ情報カウンター セットは、各プロセッサを数値のペアとして表します。最初の数値は NUMA ノードの番号で、2 番目の数値はその NUMA ノード内のプロセッサの 0 から始まるインデックスです。コンピューターで NUMA ノードが使用されていない場合、最初の数値は 0 です。
ServerServer パフォーマンス オブジェクトには、ローカル コンピューターとネットワーク間の通信を計測するカウンターがあります。
Server Work QueuesServer Work Queues パフォーマンス オブジェクトには、キューの長さおよびキュー内のオブジェクトを監視するカウンターがあります。
SystemSystem パフォーマンス オブジェクトには、コンポーネント プロセッサの複数のインスタンスに適用されるカウンターがあります。
TCPv4TCP パフォーマンス オブジェクトでは、TCP プロトコルを使用して送受信される TCP セグメントの率を計測するカウンターがあります。各 TCP 接続状態における TCP 接続数を監視するカウンターも含まれます。

収集設定を追加する

下記の設定で収集する場合

設定項目概要
データコレクト名(WebFOCUS調査用)※ 他の名称と異なる任意の名称に変更してください
設定ファイルパス名(-cf C:\work\perfmon.txt)※ 設定ファイルの保存場所に変更してください
保存形式(bincirc)バイナリ
サンプルの間隔(-si 00:01:00)※ 任意の間隔に変更してください
ファイルの作成単位(-cnf 24:00:00)24時間経過
保存ファイル名フォーマット(-v mmddhhmm)月日時分
保存ファイル名(-o “C:\work\perflogs\webfocus")※ 任意の場所・名称に変更してください
開始日時(-b 6/19/2024 8:00:00)※ 任意の日時に変更してください
停止時間(-rf 10:00:00)10時間経過後
毎日(-r)繰り返し

上記の設定の場合は、下記のコマンドを実行します。必要に応じて実行するコマンドのパラメータを変更してください。

管理者権限でコマンドプロンプトを起動してください。

logman create counter "WebFOCUS調査用" -cf "c:\work\perfmon.txt" -f bincirc -si 00:01:00 -cnf 24:00:00 -v mmddhhmm -b 6/19/2024 8:00:00 -rf 10:00:00 -r -o "c:\work\perflogs\webfocus"

コマンドは、正しく完了しました。」が出力されれば正常です。

収集設定を確認する

パフォーマンスモニターで収集設定がされていることを確認します。

[パフォーマンス] – [データコレクト セット] – [ユーザー定義] を選択して、収集定義が作成されていることを確認します。

パフォーマンスモニター画面からでも、収集を開始したり、設定を変更したりすることができますので、必要に応じて設定を変更してください。

パフォーマンスログについて

パフォーマンスログは、サーバーの稼働状況にもよりますが、1日で数十MB以上のファイルを作成します。本設定は、1日単位でファイルが分割保存されますので、不要になった古いファイルは、定期的に削除あるいはアーカイブしてディスクを圧迫しないようにしてください。

指定日数を経過したファイルを削除するタスクをタスクスケジューラーへ作成するコマンドを下記へ記載します。必要に応じて利用してください。
コマンドプロンプトを管理者権限で実行してください。
例)毎日1時に「c:\work\perflogs」フォルダ以下の30日経過したファイルを削除する

schtasks /create /tn "\Microsoft\Windows\PLA\WebFOCUS調査用パフォーマンスログ削除" /sc DAILY /st 01:00 /NP /tr "forfiles /p C:\work\perflogs /d -30 /c \"cmd /c del @file\"" /ru system /rl highest