リンク: log.utashiro.com: 今度は kernel_task だよ (3).
アップルが「仕様」というのは kernel_task のロードを増やすというのが本来狙った動作だといことでしょう(バグなんかでなく)。想像ですが、kernel_task があのようになるのは、通常のプロセスの動作を減らしてCPUの発熱を減らす手段なんだと思います。 その根拠ですが、あまりシステム熱くないときに負荷の高いプロセス(たとえば、シェルスクリプトで while true ループ)を二つも動かしてやると、瞬間的に CPU の温度は 80 度以上になります。ところが、しばらくして kernel_task が 50% も動くようになると CPU 温度は 65度くらいに下がるんですね。これは、kernel_task が実はダミータスクで、ハードウェア的にはスリープしている証左ではないかと。
設計段階からの仕様で、それが日常的に発生することを想定しているのなら「仕様」と言ってくれてもいいけど、他に言いようがあるよねえ。「苦肉の策ではありますが想定された動作です」くらいにしとけばいいのに。
実は、挙動が微妙に僕のマシンと違います。CPU だけ使うアプリを走らせればもちろん CPU の利用率は 100% (200%) になるのですが、それだけでは kernel_task は出しゃばってきません。CPU の温度も一時期90度近くまで上がり、ヒートシンクやパワーサプライも60度を超えますが、徐々に落ち着いて70度ちょいくらいで安定します。これはべったりした机の上に置いて、吹き出し口も塞ぎがちにした、あまりいいとは言えない条件で実験してみた結果です。

あ、でも続けたら再現することもできた。何かのきっかけでスイッチが入っちゃうんだなあ。

これに本当に必要な kernel_task の処理が重なると、利用率が 160% を超えるようになってしまうのでしょう。
あとやっぱり USB デバイスとの関係はあるような気がしています。でも、間接的な要因は何であれ、直接的には熱が上がりすぎることが kernel_task の暴走 (事情がわかってみると「暴走」は正しくないような気もするが) の原因になっているのは間違いなさそうです。

まいど。
kernel_task がでしゃばるのはオーバーヒートが原因と書きましたが、CPU の温度が kernel_task のでしゃばり具合を制御しているわけではないというのは私のところでも同じです。負荷のかけ始めにCPU温度が80度になっても、それだけでは kernel_task はでしゃばってきませんね。しばらくして、Enclosure Base が 42℃を越えるあたりで kernel_task がでしゃばってくるように思います。その後は CPU 温度が徐々に下がって 65℃ くらいで安定するようになります。
あと面白いのは、個体差が多少なりともありそうだということ。同じ MacBook Air (キーボードは JP と US)を横に並べて同じ条件で試したとき、kernel_task のでしゃばり具合に差があったことです。%システムでいうと 76% と 58%。念のため左右の位置を入れ替えたりしてみましたが傾向は変わりませんでした。
USB 機器の影響についてはよく分かりません。常に USB 接続のマウスと Ethernet をつないではいますが。それと、Time Machine でバックアップ始めると即でしゃばってくるように思います。
投稿情報: 森山 | 2008-09-09 20:29
76% とか 58% というのは、アクティビティモニタが示す kernel_task の CPU 利用率ということ解釈してよろしいでしょうか。だとすると、僕のマシンでは、この数字は 130 から 160 くらいに上がりますから、状況が少し違うかもしれませんね。100 くらいだとむしろ正常に思えてしまうくらいです :-)。
投稿情報: utashiro | 2008-09-10 08:28
数字はシステムタスクの合計、つまりグラフの赤いところです。紛らわしい書き方してすみません。
投稿情報: 森山 | 2008-09-10 20:41
あ、なるほど。確かに「%システム」って書いてありますね。
そうすると76% というのはかなり高い数字だし、僕のもの (JPです) とも一致します。
投稿情報: utashiro | 2008-09-10 21:08
検索でこちらのページに飛んできました。
有用な情報ありがとうございます。
MBA(late2008)モデルですが、同じ症状です。
CPU温度(と言う確証は未だ無いみたいですが)を下げるために組み込まれている“仕様”だとわかり、安心(?)しました。使用環境を考えてみることにします。
自分で出来る範囲で、いろいろ試してみましたが、
やはり、発動条件と元の状態に戻る条件ははっきりしませんね、
どなかた、解明された方いましたら紹介して下さい。
投稿情報: まん | 2009-01-29 13:08