Windows 7 64bitでperfmonbarを動作させた
以前、XPマシンを使っていたとき、気に入って使っていたフリーウェアのperfmonbar。
いつの間にか職場のPCがWindows7 64bitになり、一度頑張って調べて導入して、
またPCが壊れ、交換し、、、と繰り返していたら、導入方法すら忘れて、
先日やっと再導入したのでメモ。
ソフト自体の紹介
参照:http://www.gigafree.net/utility/refresh/perfmonbar.html
CPU 使用率 / メモリ使用量(コミットサイズ) / ハードディスクの空き容量 /
TCP 接続数 / データの送受信量... 等の情報を、タスクバー上で直接確認できるようにします。
これらパフォーマンス情報の表示は、リアルタイムに変更されます。表示させる項目、
テキストのフォントや色、スタイル は自由に変更することができたりします。
という紹介文にあるように、リアルタイムにPCの負荷状態を追いかけ、
重くなった時には何のリソースが逼迫しているのか、切り分けの一歩となるソフト。
導入でハマったポイント
1.64bit OSだと、通常のPerfMonBarは動作しない
公式サイトのバイナリだと、64bitOSでは動作しない。
インストールしても、タスクバー右クリック > ツールバー > ・・・の候補に出てこない。
回避するには、有志が修正・公開してくれているモジュールを使う。
2.ネットワークインターフェースの名称指定が難しい
デフォルトで用意されている設定ファイル(config.xml)には、[counter]と呼ばれる、
特定のリソース状態を見るためのコマンドが予め列挙されている。
<counters> <counter name="cpu" value="\Processor(_Total)\% Processor Time" /> <counter name="diskread" value="\LogicalDisk(_Total)\Disk Read Bytes/sec"/> <counter name="diskwrite" value="\LogicalDisk(_Total)\Disk Write Bytes/sec"/> <counter name="mem" value="\Memory\Committed Bytes" /> <counter name="netin" value="\Network Interface(Marvell Yukon 88E8056 PCI-E Gigabit Ethernet Controller)\Bytes Received/sec" /> <counter name="netout" value="\Network Interface(Marvell Yukon 88E8056 PCI-E Gigabit Ethernet Controller)\Bytes Sent/sec" /> <counter name="freediskC" value="\LogicalDisk(C:)\Free Megabytes" /> </counters>
詳しく調べると、Windows標準コマンドである"typeperf"*1コマンドを参照しているよう。
しかし、僕のPCのネットワークインターフェースカードは、Intel製だった。
上に記載したカウンター(netin,netout)のままでは動かないし、デバイスマネージャー上に
出てくる「Intel(R) Ethernet Connection I217-LM」を指定してもダメ。
このデバイス名に含まれる(R)が曲者で、以下のコマンドで調べた結果、判明。
C:>typeperf -qx|find "\Network Interface"
\Network Interface(Intel[R] Ethernet Connection I217-LM)\Bytes Total/sec
参考:
https://github.com/XhmikosR/perfmonbar/issues/5#issuecomment-45622957
http://www.atmarkit.co.jp/fwin2k/win2ktips/1235typeperf/typeperf.html
ということで、ちょっとした試行錯誤の末、無事動いた。
タスクバーが縦なのは、好みです。
*1:システム性能を監視するためのパフォーマンス・カウンタ