システムの動作状態を記録するには、パフォーマンス・カウンタの値を定期的に収集して保存しておけばよい。typeperfコマンドを利用すると、一定時間間隔でカウンタの値を収集、記録できる。記録されたデータはパフォーマンス・モニタにロードしたり、グラフ化ツールなどで解析すればよい。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
対象OS:Windows XP/Windows Server 2003/Windows Vista/Windows Server 2008/Windows 7/Windows Server 2008 R2
TIPS「パフォーマンス・モニタの使い方(基本編)」では、管理ツールのパフォーマンス・モニタを使って、システム内の各部に用意されたさまざまな「パフォーマンス カウンタ」の値を収集し、リアルタイムにグラフ化して表示する方法を紹介した。例えばCPUやメモリ、ネットワークの利用率、ディスクの入出力データ量などをグラフ化して、システムの動作状態をモニタしたり、ボトルネックとなっている部分を調査したりできる。
だが先のTIPSの方法では、グラフはリアルタイムに表示されるだけなので、長期に渡ってシステムの状態を監視したり、過去のある時点のデータを後で解析するといった用途には向かない。そのような場合は、カウンタの値を長期に渡って収集し、ログ・ファイルやデータベース・ファイルなどに保存しておくとよい。
カウンタの値を定期的に収集し、ログ・ファイルに記録するにはいくつかの方法があるが、本TIPSでは、Windows XP以降のWindows OSに用意されている「typeperf.exe」コマンドを使う方法を紹介する。収集したデータはパフォーマンス・モニタで表示させるか(TIPS「収集したカウンタ・データをパフォーマンス・モニタで表示させる」参照)、(CSV形式などで出力して)表計算ソフトウェアなどで解析すればよい。スケジュールを組んで収集させる方法についてはTIPS「パフォーマンス・カウンタのデータをスケジュールに従って収集する(Windows XP/Windows Server 2003編)」を参照していただきたい。
typeperf.exeは、Windows XP以降のWindows OSに用意されているコマンドである(Windows 2000 Resource Kitに含まれていたtypeperfコマンドがベースになっているが、これとは使い方が少し異なる)。これはコマンド・プロンプト上で利用するツールであり、指定されたパフォーマンス・カウンタのデータを収集して、その値を表示/保存するという機能を持つ。収集するカウンタを指定してコマンドを起動すると、一定時間間隔ごとにデータを収集し(デフォルトでは1秒ごと)、その結果をCSV形式で標準出力へ表示する(CSV以外の形式でも出力可能)。使い方は「typeperf -?」で表示される。
C:\>typeperf -? ……ヘルプの表示
Microsoft(R) TypePerf.exe (5.1.2600.0)
(C) Microsoft Corporation. All rights reserved.
Typeperf は、パフォーマンス データをコマンド ウィンドウまたはログ ファイルに書き込みます。Typeperf を停止するには、Ctrl+C キーを押します。
使い方:
typeperf { <カウンタ [カウンタ ...]> | -cf <ファイル名> | -q [オブジェクト] | -qx [オブジェクト] } [オプション]
パラメータ:
<カウンタ [カウンタ ...]> モニタするパフォーマンス カウンタです。
オプション:
-? 状況に応じたヘルプを表示します。
-f <CSV|TSV|BIN|SQL> 出力ファイルの形式です。既定は CSV です。
-cf <ファイル名> モニタするパフォーマンス カウンタを含んでいるファイルです。1 行に 1 カウンタです。
……(以下省略)……
typeperfでカウンタの値を収集するには、まずどのようなカウンタが存在し、どうやってそれを指定するかを把握しなければならない。システムに存在するカウンタ・オブジェクトと、そのインスタンスの一覧を知るには、「typeperf -q」や「typeperf -qx」コマンドを実行すると表示される(-qはカウンタ・オブジェクトの一覧を、-qxはインスタンスも含めたカウンタ・オブジェクトの一覧を表示する)。
※カウンタ・オブジェクトの一覧の表示
C:\>typeperf -q
\ServiceModelEndpoint 3.0.0.0\Calls
\ServiceModelEndpoint 3.0.0.0\Calls Per Second
\ServiceModelEndpoint 3.0.0.0\Calls Outstanding
\ServiceModelEndpoint 3.0.0.0\Calls Failed
……(以下省略)……
特定のカウンタだけを表示するには、そのオブジェクト名を指定する。例えばプロセッサに関するカウンタならProcessor、ネットワーク・インターフェイスならNetwork Interface、ディスクならLogicalDiskやPhysicalDiskを指定する。
C:\>typeperf -q Processor ……プロセッサ・カウンタだけを表示させる
\Processor(*)\% Processor Time
\Processor(*)\% User Time
\Processor(*)\% Privileged Time
……(以下省略)……
C:\>typeperf -qx "Network Interface" ……ネットワーク・インターフェイスのインスタンスも表示させる
\Network Interface(Marvell Yukon 88E8001_8003_8010 PCI Gigabit Ethernet Controller - \Network Interface(VMware Virtual Ethernet Adapter for VMnet1)\Bytes Total/sec
\Network Interface(VMware Virtual Ethernet Adapter for VMnet8)\Bytes Total/sec
……(以下省略)……
Copyright© Digital Advantage Corp. All Rights Reserved.