3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

Google Desktop でシステムモニタガジェットを追加するとCPU使用率が上がる(後編)

Google Desktop でシステムモニタガジェットを追加するとCPU使用率が上がる(前編)の続きです。

Google Desktop のシステムモニタガジェットが犯人なのはわかりましたが、一体カーネルの中で何が起こっているのかを調べてみたいと思いました。

で、見つけたのがJavaと情熱のあいだ:SystemプロセスのCPU使用率が異常-調査編-です。

上記の記事によるとどうやらマイクロソフトが提供しているKernrate Viewerを使うと、もう少し詳細にわかるようです。

ということで、システムモニタがガジェットを追加して、KrView(Kernrate Viewer)を実行してみました。

C:\Program Files\KrView\Kernrates>Kernrate_i386_XP.exe > res.txt

Starting to collect profile data

***> Press ctrl-c to finish collecting profile data

※ここでCtrl+Cを押下する

===> Finished Collecting Data, Starting to Process Results

============================== NORMAL END OF RUN ==============================

結果のファイルの中身はこんな感じでした。

Module Hits msec %Total Events/Sec

ntkrnlpa 1524 4122 55 % 9243085

b57nd60x 1151 4122 41 % 6980834

win32k 38 4122 1 % 230470

hal 14 4122 0 % 84910

ndis 5 4122 0 % 30325

amon 2 4122 0 % 12130

Ntfs 2 4122 0 % 12130

cdd 1 4122 0 % 6065

Npfs 1 4122 0 % 6065

VMNetSrv 1 4122 0 % 6065

tcpip 1 4122 0 % 6065

SCSIPORT 1 4122 0 % 6065

1番目の ntkrnlpa はカーネル自身っぽいです。

2番目の b57nd60x は調べてみると、Broadcom製のネットワークアダプタのドライバのようですね。(%systemroot%\system32\DRIVERS\b57nd60x.sys)

このネットワークアダプタのドライバがあやしいですね。

システムモニタガジェットを外すと下記のように少しだけNICの割合が減ってました。

ntkrnlpa 3023 8923 66 % 8469685

b57nd60x 1082 8923 23 % 3031491

さらにNICをデバイスマネージャで削除してみました。するとCPU使用率がかなり減少しました。

ガジェットなしでも2割前後はCPU食ってましたが、NICのけるとシステムモニタガジェットありでも1割前後になってます。

ということで、真犯人はLANカードでした。

このNICの新しいドライバ出てないかと探したんですが、現行バージョンがどうやら最新っぽいです。

実はシステムモニタガジェットのけた全くのアイドル時でも若干CPU食ってるっぽいんですよね。 まあ、サービスや常駐ソフトを止めて試したわけではないので、なんとも言えませんが、やはりこのドライバが引っ掛かります。(Systemプロセス内で20-30%ほどNICが食ってる)

ただ、ガジェットのけて軽くなったので、おそらく現在の通信量の取得がらみが最適化されてないんじゃないかなと思います。

といっても、どうしようもないので、しばらくは現状で我慢するしかありませんね。