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が食ってる)
ただ、ガジェットのけて軽くなったので、おそらく現在の通信量の取得がらみが最適化されてないんじゃないかなと思います。
といっても、どうしようもないので、しばらくは現状で我慢するしかありませんね。