【ライトニングトーク ネタ】パフォーマンスを見る

#表示がおかしかったので修正しました。失礼しました。 

12月2日に福岡で開催されたTFセミナーでは、お申し込みされた方が少なく、PASSJの河端さんだけでした。そこで、わたくし安納と、Developper Evangelist の大野もLTに参戦いたしました。

私はと言えば、5分におさまりきらず、最後は無理やりまとめてしまいました。が、実はちょっとだけやり残してしまいました。そこで、この場をお借りして、LTトークを行います。5分で読んでください。

<LT開始>

スライド1

みなさんこんにちは、マイクロソフトの安納です。今回は、「パフォーマンスを見る」方法についてご紹介します。

スライド2

みなさんは、普段、どのような方法でパフォーマンスを見ているでしょう?

スライド3

もっとも手軽なツールが、タスクマネージャーですね。CPUとメモリの状態を手っ取り早く把握するにはこれで十分です。

スライド4

次に挙げられるのがリソースモニターです。これはWindows Vistaから実装された機能で、CPUやメモリだけでなく、ディスクやネットワークのパフォーマンスを見るのにも活用できます。タスクマネージャーと違い、グラフを見ながら個々のプロセスを確認することができるところがすぐれています。リソースモニターはパフォーマンスモニタの一部として実装されており、コマンドプロンプトから起動する際には perfmon /res と入力します。

スライド5

さて、次は、すこしなじみのない方法かもしれません。

WMICコマンドです。WMIはご存じでしょうか?Windows Management Instrumentationの略で、Windows Management サービス という名称で実装されています。VBScript や PowerShell をはじめとして、さまざまなプログラム言語からWMIをコールすることで、OSの状態やハードウェアの情報、レジストリ、ユーザーアカウント、などなどなど、とにかく多くの情報を収集することができるだけでなく、情報の設定も可能です。

WMIを使用してパフォーマンス情報を取得することもできます。スライドに示したのは、システムのプロセス情報を取得した例です。「NODE」は参照したいコンピュータ名、「PROCESS」はプロセスに関する情報を取得することを示しています。PROCESS の部分を他のエイリアスに変更することで、その他の情報を取得することができます。どのようなエイリアスが用意されているかは WMIC /? でヘルプを参照してみてください。「List Brief」は表示形式を指定しており、「概要の表示」を意味しています。

スライドにはWMICコマンドの実行結果例を示しています。タスクマネージャと同様の情報が出力されていることがお分かりいただけるでしょう。

スライド6

パフォーマンスを参照する場合、全ページのように1回限りの情報ではあまり意味がありません。繰り返し表示して、カウンターの推移を見たいと思うのが人情ってものです。

WMICには、さまざまなスイッチが用意されており、繰り返し表示するには「/Every」を使用します。

また特定の情報に絞って取得したい場合には、「get WorkingSetSize」のように取得したい属性名を指定したり、Where句によって特定のプロセスを指定することができます。

ここに示したコマンド例を実際に実行すると、次のようになります。

image

この例では、1秒ごとに、Explorer.exe の使用メモリ、CPUの使用時間を取得しています。画面に表示するだけでなく、c:\tmp\perf.txtにも保存されています。

スライド7

WMICの面白ところは、パフォーマンスカウンタのクラスを直接指定することで、パフォーマンスモニタと同じレベルの細かな情報を取得することができるところです。

今回は詳しくお話する時間がありませんので、「WMI Win32 Classes」で検索してみてください。MSDNライブラリ内の情報がヒットします。

スライド8

  さて、1つ大御所が抜けていますね。そうです、パフォーマンスモニターです。パフォーマンスといえばパフォーマンスモニター。これを知らずしてパフォーマンスを語ることはできません。

なので詳しい使い方等の説明は省きますが、Windows VistaやWindows Server 2008によってカウンタの数も増え、より使い勝手が良くなりました。特定のカウンタのグラフを太字にして目立たせるなんてこともできます。

スライド9

もう無いだろう...と思ってますか?いえいえ、もう1つご紹介したい機能があります。それは、Internet Explorer に System Monitor Control を読み込んで使用する方法です。

ここに示すようなHTMLを記述するだけで、Internet Explorerからパフォーマンス情報を参照することができるのです。

ie

実際にIEで表示したのがこの画面です。

どうでしょう?パフォーマンスモニターと全く同じ画面ですよね。これはどういうことか?つまり、パフォーマンスモニタ自身が System Monitor Control でできているということなのですね。

え?「さっきのHTMLをメモしたいから見せてくれ」って? 安心してください。

(本番では ここで4分50秒)

スライド10

手で書く必要は無いのです。パフォーマンスモニターのグラフ画面を右クリックして「設定を保存」を選択していただければ、現時点のカウンタの情報を含めHTMLに保存することができるのです。

この方法を使用すれば、例えばお客様に「これと、これと、これと、あれと、これ のカウンタを見てください」などと面倒なお願いをすることなく、メールでHTMLファイルを送ってダブルクリックしてもらえば済むんです。

非常に便利な機能ですので是非とも使ってみてください。

ということでございまして、ちょうど5分です。

ご清聴ありがとうございました。