連載
» 2009年11月13日 05時00分 公開

Tech TIPS:Windowsのtypeperfコマンドでシステムのパフォーマンスカウンタのデータを収集する

システムの動作状態を記録するには、パフォーマンス・カウンタの値を定期的に収集して保存しておけばよい。typeperfコマンドを利用すると、一定時間間隔でカウンタの値を収集、記録できる。記録されたデータはパフォーマンス・モニタにロードしたり、グラフ化ツールなどで解析すればよい。

[打越浩幸,デジタルアドバンテージ]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Tech TIPS」のインデックス

連載目次

対象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コマンドとは

 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
……(以下省略)……



●typeperfによるデータの収集

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。