森山さんからのコメント:
うちの MBA の場合 kernel_task が出てくるのもシングルコア化問題と同じく単に温度の問題のようです。
シェルスクリプトで無限ループ回すプロセスを二つばかり上げて、そこで YouTube などの動画を流せばあっという間に kernel_task が 80%くらいになっちゃいますね。扇風機で冷やすとすぐに直りますけど。
今使っているのは二台目の MBA です。一台目のも同じ症状でしたが、アップルに聞いても修理法は確立していないとのことなので、初期不良ということで交換してもらいました。二台目も同じ症状ですので、結局、熱設計があまり良くないということなのではないかと思っています。
そうだよなあ、そうですよねー。やっぱりそれを疑わなくちゃいけないよねえ。でもまさかそんなことはと思ってたんだけどなあ…
今ちょっと不自由な環境にいるもんでそれを試せずにいたのですが、うちからクーラーパッド を持って来てもらって半日程実験していました。結果としては、森山さんの仰る通りオーバーヒートを防げば kernel_task の暴走もなくなりました。前の記事で、こんなことになんで気づかないのかと書いたのがお恥ずかしい。
実際には、ファンを回さなくても、クーラーパッドに乗せるだけで、かなり状況は改善します。
kernel_task の問題についてアップルのテクニカルサポートから回答がありました。「発熱すると kernel_task が CPU タイムを食いつぶすのは『仕様』」。だそうです。 え~!? 発熱がひどくなるとダミータスク(kernel_task)をスケジュールして、実際には CPU を休ませておくことによって擬似的にパワーセーブしているんじゃないかと思っていましたが、それにしても「仕様」と言い切られるとは。
それは、ひどいなあ…
どこかで「kernel_task って殺しちゃいけませんか?」と訊いてる人がいて微笑ましく見ていたんだが、僕も殺したくなってきたぞ。
kill -9 0
「仕様」は酷いすね。。。
どうも、Appleの熱設計はマージンが少ないなっていつも思うのですけど、どうなんでしょうね。うちのiMac G5なんて、ふた開けると、ハードディスク、さわれないぐらい熱いです。
投稿情報: shigeya | 2008-09-08 22:51
こちらで取り上げていただいてたのですか。ありがとうございます。
アップルが「仕様」というのは kernel_task のロードを増やすというのが本来狙った動作だといことでしょう(バグなんかでなく)。想像ですが、kernel_task があのようになるのは、通常のプロセスの動作を減らしてCPUの発熱を減らす手段なんだと思います。
その根拠ですが、あまりシステム熱くないときに負荷の高いプロセス(たとえば、シェルスクリプトで while true ループ)を二つも動かしてやると、瞬間的に CPU の温度は 80 度以上になります。ところが、しばらくして kernel_task が 50% も動くようになると CPU 温度は 65度くらいに下がるんですね。これは、kernel_task が実はダミータスクで、ハードウェア的にはスリープしている証左ではないかと。
投稿情報: 森山 | 2008-09-09 00:07