kernel_taskが暴走してMacがとても遅くなったが解決した

MacBook Pro(15-inch Late 2011)を使っていて、いつの間にかkernel_taskがCPUを使いまくってマシンのレスポンスがとても遅くなってしまった。日本語で「あいうえお」と入力すると、1秒ごとにあ、い、う、え、おと入力されるぐらい遅い。

結論を言うと、ファンのホコリの除去とSMCをクリアしたら直った。
同じような現象が出た方のために経緯とチェックすべき点を書いておく。


最初、VMware Fusionを起動しているときに遅くなったことに気がついたので、VMwareが原因かなと考えていた。

が、VMwareを起動していないときにも遅くなってきた。
iStatで確認すると、kernel_taskがCPUを400%ぐらい使っている。
しかもロードアベレージがやたら高い。起動直後はロードアベレージが150とかになっている。
そして起動直後からファンがフル回転の6200回転固定になっている。

これはどうやら何かがおかしいと言うことで、まずはOSのクリーンインストールを試してみた。
必要なデータはDropbox等のクラウドに置いているので、クリーンインストールの精神的なハードルがとても低くなり、良い。
しかし、Yosemiteをクリーンインストールしたが、まだkernel_taskがCPUを使っている。

これはどうやらソフトウエアの問題では無いようだ。

ファンがまだフル回転しているので、熱の問題かと考えた。
iStatでは温度は特に問題無いが(CPUは70度程度)、センサーに問題があるかもしれない。
マシンが極端に遅くなっているのは、熱が原因でCPUのクロック数が下がっている可能性を考える。

そこで、CPUのクロック数をチェックすることができるIntel Power Gadgetを入れてみた。
CPUは処理の負荷によって動的にクロック数を変化させるのだけど、Intel Power Gadgetはリアルタイムにそれを確認することができる。

IntelPowerGadget

すると、このMacはCPUの定格が2.4GHzなのだが、0.8GHzで固定されているような動作をしていた。
マシンが遅いのはこいつが原因のようだ。

ファンの調子が悪いかもしれないので、MacBook Proの排気口にエアダスターを吹きかけて、ホコリを吹き飛ばしてみた。
4年近く使っているので、結構な量のホコリが出てきた。大きなホコリの塊もある。

吹き飛ばしてみると、0.8GHz固定ではなくなったが、それでも2.4GHzは出ない。
そしてファンの回転数も6200回転で動かない。

次に、SMCをクリアしてみた。SMCはMacの電源周りをコントロールしているチップで、これが原因でスリープ等の電源周りがおかしくなることがあるらしい。
Intel ベースの Mac:SMC (システム管理コントローラ) のリセットを参考にし、SMCをリセットしてみた。

すると、これがビンゴでファンの回転数が正常に戻り、CPUのクロック数も2.4GHz以上出た。
マシンが遅くなることも、kernel_taskがCPUを食いつぶすこともなくなった。

解決したので、Macの動作が異常に遅くなった場合の確認ポイントをまとめてみる。

  • まず、ActivityモニタかiStatのようなCPUを使っているプロセスを確認することができるアプリで、どのアプリがCPUを食っているか確認する。
  • kernel_taskがCPUを食っている場合、様々な原因が考えられるが、今回のようにCPUをアイドル状態にしてCPU温度が上がらないように制限する場合もkernel_taskのCPU利用率が上がる。
  • 遅くなっている原因がCPUのクロックダウンにあるかどうかをIntel Power Gadgetで確認する。
  • 常にクロックダウンしているのであれば、熱とSMCの問題が考えられるので、ファンを掃除し、SMCをクリアする。

 

No Comments

Post a Comment

コメントを投稿するには、下の計算の答えを入力する必要があります。答えは半角数字で入力してください。 *