2008年10月

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

最近のモノ

« 2008年8月 | メイン | 2008年10月 »

2008-09-09

今度は kernel_task だよ (4)

リンク: 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_task4

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

Kernel_task5

これに本当に必要な kernel_task の処理が重なると、利用率が 160% を超えるようになってしまうのでしょう。

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

2008-09-08

今度は kernel_task だよ (3)

森山さんからのコメント:


うちの MBA の場合 kernel_task が出てくるのもシングルコア化問題と同じく単に温度の問題のようです。
シェルスクリプトで無限ループ回すプロセスを二つばかり上げて、そこで YouTube などの動画を流せばあっという間に kernel_task が 80%くらいになっちゃいますね。扇風機で冷やすとすぐに直りますけど。
今使っているのは二台目の MBA です。一台目のも同じ症状でしたが、アップルに聞いても修理法は確立していないとのことなので、初期不良ということで交換してもらいました。二台目も同じ症状ですので、結局、熱設計があまり良くないということなのではないかと思っています。

そうだよなあ、そうですよねー。やっぱりそれを疑わなくちゃいけないよねえ。でもまさかそんなことはと思ってたんだけどなあ…
今ちょっと不自由な環境にいるもんでそれを試せずにいたのですが、うちからクーラーパッド を持って来てもらって半日程実験していました。結果としては、森山さんの仰る通りオーバーヒートを防げば kernel_task の暴走もなくなりました。前の記事で、こんなことになんで気づかないのかと書いたのがお恥ずかしい。

実際には、ファンを回さなくても、クーラーパッドに乗せるだけで、かなり状況は改善します。

kernel_task の問題についてアップルのテクニカルサポートから回答がありました。「発熱すると kernel_task が CPU タイムを食いつぶすのは『仕様』」。だそうです。 え~!? 発熱がひどくなるとダミータスク(kernel_task)をスケジュールして、実際には CPU を休ませておくことによって擬似的にパワーセーブしているんじゃないかと思っていましたが、それにしても「仕様」と言い切られるとは。

それは、ひどいなあ…

どこかで「kernel_task って殺しちゃいけませんか?」と訊いてる人がいて微笑ましく見ていたんだが、僕も殺したくなってきたぞ。

kill -9 0

2008-09-07

今度は kernel_task だよ (2)

kernel_task 問題はまだ解決していないが、どうやらやはり USB の関係があるような気はしてきた。事情があって、現在常時イーモバイルを使った接続なので、ネットにつながっているときには常に USB が使われている状況なのだ。

USB でバイスとマルチメディア関連の処理が重なると特にまずいような気がする。だから、ネットで YouTube の動画を再生なんてのが最悪の組み合わせで、必ずはまる。この場合、kernel_task が CPU を 160% 以上使う。

Kernel_task2

この状態でモデムの接続を切っても状態は変わらない。ただし、接続を切って一度再生を中止すると kernel_task の暴走は止まる (こともある)。そして、もう一度再生を開始しても暴走は発生しないのだ。

Kernel_task3

なんか、割り込み処理に問題があるような気がするなあ。

2008-09-03

片肺直ったと思ったら今度は kernel_task だよ

MacBook Air の片肺問題は、shigeya さんの言う通り、一応 8/22 に出たアップデートで対応されたようだ。このアップデートを当てて以来、多分一度も目にしていない。

MacBook Air のシングルコア化については、いろいろなところで話題になっているが、多くのところで原因がよくわからないという結論になっているのが不思議である。直接的な原因は明らかに熱だからだ。中には冷蔵庫に入れて熱が原因だと結論づけているところもあるが、そんなことしなくてももっと簡単にわかるだろうに。とにかく、だから、単純に過熱しないようにしてやれば片肺化は防ぐことができる。

僕は SANWA SUPPLY の TK-CLN7USV ノート用クーラーパッド シルバー TK-CLN7USV というのを導入したが、これを使っていれば問題はなかった。ちなみに、まつもとさんと違ってメーカーが勝手に送って来てくれたりはしないので、自分で買った。

さて、片肺問題は解決したかに見えるが、どうもアップデート以来 kernel_task がすぐに CPU を 130-140% も食いつぶすという状態になってしまった。以前から kernel_task が暴走気味になることはあって、それが片肺化の原因だと取り沙汰されてもいたのだが、140% というのはいかにも異常である。

Kernel_task

しかも、きっかけがわからない。一説によれば USB デバイスが原因だとかも言われているが、そうとも限らないような気がする (あ、でも今試しにイーモバイルのモデムを抜いてみたら下がったなあ…)。まったくの印象だが、何らかのリソースが競合していて、複数の事象の複合的な組み合わせによって発生するような気がするのだ。

しかし、これははっきり言って片肺よりも質が悪い。片肺の直接的な原因はわかっているので、とにかく冷やしてさえやれば解決するし、少なくとも一度スリープしてファンが止まるまで待てば回復するのだ。kernel_task の暴走は原因がわからないし、解消したかに見えてもすぐに再発してしまう。前途多難なのだ。

hatena.utashiro.com

最近のトラックバック