【101シリーズ】パフォーマンスモニタ徹底攻略 ~ 基礎編

今回から「101シリーズ」というのを作ってみました。
101シリーズでは、特定のキーワードや概念について、基本的なところを私なりの見立てで解説してみようというものです。
ちなみに、101というのは、USのテクニカルカンファレンスでよく見かける言葉で、基礎とか、「○○のいろは」などの意味があります。

今回は、今は無くなってしまった商用サイトに掲載されていたコンテンツから、パフォーマンスモニタについて取り上げてみたいと思います。

サーバーに求められるパフォーマンスとは?

私たちは、よく「パフォーマンスが悪い」などという言葉を使うが、パフォーマンスの善し悪しはサーバーとクライアントでは全く異なるものだ。

クライアントコンピュータの場合、ひとりの利用者が行う命令(処理)が早く実行できればよい。しかし、サーバーの場合、様々な利用者からの要求に答えなければならないため、ひとつの処理だけが早ければよいというものではない。ある決められた時間の中でどれだけの処理が実行できるかがパフォーマンスを判定する要素となる(図1)。このように、サーバーに求められるパフォーマンスは、クライアントと本質的に異なるものなので、パフォーマンス計測を行う方法も異なるのだ。

図1
図1●ひとつのタスク処理が早ければ「褒められる」クライアント(左)と、決められた時間内に多くのタスクを処理すれば「褒められる」サーバー(右)

クライアントコンピュータのパフォーマンス計測を行うときには、処理を行っている最中、つまり「今の状態」を見るので、タスクマネージャのCPU使用率やメモリ使用量などを見ることが多いだろう。しかし、サーバーのパフォーマンスを測定するときには、システムの繁忙期、閑散期など、様々な場面での「決められた時間の中での処理」が存在するため、ある特定の場面だけを見て判定するのは適切ではない。

パフォーマンスモニタを利用する

パフォーマンスモニタはパフォーマンスの測定を行うときに利用する、Windows Server標準の管理ツールである。パフォーマンスモニタは、現在のシステムパフォーマンスを確認するための機能と、「データコレクタ」と呼ばれるシステムパフォーマンスを計測する機能で取得したデータを表示する機能などから構成される(画面1)。

画面1
画面1●「サーバーマネージャ」からパフォーマンスモニタを開いた様子。パフォーマンスモニタはスタートメニューの「管理ツール」から開くこともできる。

パフォーマンスモニタで計測する項目をカスタマイズするときは、画面の+をクリックする。計測する項目は「オブジェクト」、「カウンタ」、「インスタンス」から構成されている(画面2)。

・ オブジェクト

オブジェクトは計測する項目の「ジャンル」を表す。オブジェクトには、メモリを計測するMemoryオブジェクトやハードディスクを計測するPhysical Diskオブジェクトなどがある。オブジェクトを選んで計測するように設定すると、オブジェクト内のすべての項目が計測対象となる。

・ カウンタ

カウンタはパフォーマンス計測を行う、具体的な項目である。例えば、ディスクの計測を行う場合、読み取りの計測と書き込みの計測という2つのニーズが存在する。どちらか片方だけ計測したい場合、Physical Diskオブジェクトを使うという大雑把な計測方法ではなく、Physical Diskオブジェクト内の特定のカウンタを使って計測すれば、読み取りだけ、もしくは書き込みだけ計測することができる。

・ インスタンス

選んだカウンタから、さらに細かく特定の項目だけ計測したい場合に利用するのがインスタンスである。例えば、CドライブとDドライブがあるディスクの読み取りパフォーマンスを計測するときに、Cドライブのパフォーマンスだけ計測したければ、インスタンスでCドライブを選択することができる。

画面2
画面2●カウンタの追加画面

また、「カウンタの追加」画面では計測を行うコンピュータを選択することができる。1カ所から集中的に計測できるので便利だが、ネットワークを介して行うので、ネットワークに関するパフォーマンスは正しく計測できなくなる点に注意したい。

パフォーマンスモニタの表示をカスタマイズする

ここまでの方法で、オブジェクトやカウンタを追加すると、パフォーマンスモニタの画面上に追加したカウンタの状態がリアルタイムで表示される。色分けで表示されるので、わかりやすいのだが、もっと見やすくするなら、次の方法を実践することをお勧めする。

・ スケールを合わせる

既定でパフォーマンスモニタのスケール(縦の目盛り)は0~100の範囲に設定されている。そのため、利用可能なメモリの容量(MB)を表すAvailable MBytesで計測した値が114MBだったりすると0~100の範囲に収まらなくなる。そのときは、カウンタを右クリックして「選択したカウンタのスケール設定」をクリックしよう。すると、0~100の範囲に収まるようにスケールが変更される。前述のAvailable MBytesの場合、114MBを0.1倍した数値(つまり11.4)に変換し、グラフに表示してくれる。

画面3-1

画面3-2
画面3●スケールを変更していない場合(上)はグラフの上に突き抜けてしまっているが、スケールを変更すると、範囲内にグラフが表示される(下)

・ グラフを強調する

パフォーマンスモニタに多くのカウンタを追加すると、グラフから参照したいカウンタを探すのが難しくなる。そのときは特定のカウンタを強調表示しよう。特定のカウンタを選んでCtrl+Hを押すと、そのカウンタが黒の太字で表示される(画面4)。

画面4
画面4●複数あるカウンタの結果も太字表示されると際だつ

データコレクタの活用

ここまで、パフォーマンスモニタでシステムパフォーマンスを確認する方法を見てきたが、サーバーのパフォーマンス測定する上で本当に知りたい情報は、「今の状態」ではなく、ある一定の期間の情報である。パフォーマンスモニタでリアルタイムにデータを追いかけると長期間での傾向をつかみにくくなる。そのため、データコレクタをパフォーマンス測定する方法が一般的になる。

データコレクタとは、パフォーマンス測定の結果をログとして記録する機能で、データコレクタで記録したいオブジェクトとカウンタを設定しておけば、自動的に記録を開始し、その内容を後からパフォーマンスモニタで図示することが出来る。

利用方法は次のとおりだ。

1.データコレクタセットの「ユーザー定義」を右クリックし、「新規作成」から「データコレクタセット」を新しく作成する。データコレクタセットはBasicテンプレートから作成する。

2.1.で作成したデータコレクタセットから「Performance Counter」のプロパティを開き、パフォーマンスモニタのカウンタを追加する(画面5)。カウンタの設定では「サンプルの間隔」を設定することができる。サンプルの間隔とは計測を行う間隔のことで、この間隔を短く設定すると、データコレクタのデータサイズが大きくなるので、そのことを踏まえて設定するとよい。

画面5
画面5●パフォーマンスカウンタの追加はカウンタ単位だけでなく、オブジェクト単位でも可能だ。

3.1.で作成したデータコレクタセットを右クリックして「開始」をクリックする。すると、2.で設定したカウンタが定期的に計測するようになる。停止も同様の操作で行える。開始と停止を自動化するときはデータコレクタセットのプロパティで設定することが可能だ。

以上の操作で記録すると、パフォーマンスモニタの画面に戻って、データコレクタセットのファイルを指定すれば(画面6)、データコレクタセットを開始していた間のデータが表示される。

画面6
画面6●パフォーマンスモニタからデータコレクタセットで作成したログを指定

パフォーマンスモニタの使い方が確認できたところで、次回は実際にパフォーマンスの計測を行ってみることにしよう。