いつからこうなったのか不明ですが、サブPCでffmpegがCPUを使いきってくれなくなりました。
と書くと、以前書いた論理コアの一つが100%になってボトルネック の他、検索しても似たような話が見つかるのですが、どうも今回は様子が違う。
タスクマネージャーを見るとCPU負荷が数秒毎に40%と97%あたりを往復。負荷が下がっているときはどのコアも余裕があり、ボトルネックが発生しているようには見えず。またffmpegの減速が半端ではなく、調子のいい時の12fpsから1/5以下に落ち込むと目も当てられない。
そして最も奇妙なのが、タスクマネージャーを見てもffmpeg以上にCPU負荷をかけているプロセスが見つからない。50%以上がアイドルだとおっしゃる…
タスクマネージャーからリソースモニターに進んでCPU負荷を調べると、どうやら「システムの割り込み」が常に25~35%負荷をかけている。う~ん、なんかバスを頻繁に使用しているデバイスでもあるのかな…。
ネットで調べると同じような現象に陥っている人はいるようで、
- デバイスマネージャーから問題の有りそうなデバイスを停止する(High Definition Audioとか)
- 拡張ボード類を片っ端から抜いて犯人探しする
- Windowsの再インストール
という対処。上二つは犯人が見つからなかったので、Windows7の再インストールとなりそう。
[参考]
- Windows 7 質問スレッド Part10 >>467 (2ちゃんねる)
- Windows 7をインストールしたらデュアルコアCPUの片方だけ使用率が高いままになりました (Microsoft answers)
- システムの割り込み(遅延プロシージャ呼び出しと割り込みサービスルーチン)(Yahoo! 知恵袋)
[2011/1/23 追記] 犯人はPATAポートの模様。OSインストール時には光学ドライブを繋いでいたのですが、その後外すと上記のように謎のCPU負荷が発生しました。マザーボード(GIGABYTE GA-5YASV-RH)のBIOSではPATAを切る方法が見つからなかったので、WindowsのデバイスマネージャでPATAを無効にすることで解決。
[2011/2/8 追記] コメントへの返答として、Windows7 HomePremiumでのPATAを無効にする方法。デバイスマネージャでPATAの項目を右クリック→無効を選択するだけ。基本的にWindows XP/Vista/7で同じのはず。ただしPATAがどういう表現でデバイスマネージャ上に現れるかはマザーボードおよびデバイスドライバに依存しますので、こちらでは分かりかねます。
1. west — 2011/02/08@21:58:57
お聞きしたいのですが、WindowsのデバイスマネージャでPATAを無効にする方法を
教えていただけますか?ご教示よろしくお願いいたします。