kernel_task が高 CPU になる理由
kernel_task は macOS のカーネルそのものであり、普通のアプリと同じようには扱えません。Apple は見かけ上の高い CPU 使用率を、プロセッサ温度を管理する手段のひとつとして説明しています。他のプロセスが使える CPU リソースを減らすことで、それらが生み出せる熱も抑えられます。つまり kernel_task は反応としてのシグナルであり、必ずしももともとの発熱源そのものではありません。
kernel_task とは何か
kernel_task は macOS カーネルそのものであり、オペレーティングシステムの中核です。メモリ、ハードウェア、スケジューリングを管理するため、常に動作しており、プロセス一覧の上位にいることも普通です。問題に見えるのは、CPU 使用率が突然 50%、100%、あるいはそれ以上に跳ね上がり、Mac がもたつき始めたときです。
なぜ急上昇するのか:熱の話です
ここで直感に反する点があります。Mac が熱くなると、macOS が冷やす手段のひとつは、熱を生んでいる処理に対して CPU を使いにくくすることです。そのために kernel_task がそれらのサイクルを自ら占有します。kernel_task の CPU が高いのは、カーネルが重い処理をしているからではなく、熱くなったチップが冷える余地をつくるために CPU 時間を押さえている状態です。見えている数値は熱の症状であり、原因ではありません。重いアプリ、通気の悪さ、暖かい部屋など、何か別の要因が温度を押し上げ、kernel_task がその応答として動いています。
推測ではなく、熱の状況を確認できます。
pmset -g therm
このコマンドは、利用可能な場合に記録された熱およびパフォーマンス警告の状態を表示します。熱負荷と消費電力の有限なサンプルを一度だけ取るには、次を使います。
sudo powermetrics --samplers thermal,cpu_power -n 1
どちらのコマンドも、kernel_task のパーセンテージを温度に変換するわけではありません。負荷時と冷えたあとの状態を比べてください。
なぜ終了できないのか、そしてすべきでないのか
macOS は kernel_task の強制終了を許しません。それは正しい挙動で、これがカーネルだからです。終了を試みたり、「無効化」する方法を探したりするのは、的外れです。kernel_task は本来の仕事をしています。数値を下げるのは、発熱源を止めることです。
実際に下げるには
熱の調査として扱ってください。アクティビティモニタを CPU で並べ替え、応答の前に走っていた負荷を特定します。その負荷を一時停止し、不要なディスプレイや周辺機器を外し、硬い平面の上で使い、通気口をふさがないようにします。冷えたあと、同じ読み取り値を比較してください。アイドルでも起きる、特定の電源アクセサリに追従する、クリーンな再起動直後にすぐ戻る、といった場合は、動作確認済みの Apple 互換の電源と周辺機器で試し、Apple 診断を実行します。アイドル時に続く熱の挙動は、プロセスをさらに終了するより、修理を検討する対象です。熱全般の手順はMacBook のファンがうるさい理由にまとめています。
内部で起きていること:「高い CPU」が測っているもの
アクティビティモニタの数値は、抑止されている計算能力のメーターとしては解釈しないでください。Apple が文書化している挙動は、kernel_task が発熱を生むプロセスに対して CPU リソースを使いにくくできる、というものです。スケジューリング、アカウンティング、ドライバなど、他のカーネル作業も存在するので、パーセンテージは負荷と熱状態と突き合わせる証拠であり、温度やスロットリング率への直接換算ではありません。
記録された警告状態には pmset -g therm を、熱負荷には範囲を限った powermetrics のサンプルを使います。センサーへのアクセスやラベルは Intel Mac と Apple silicon Mac で異なるため、制御した負荷のもとでの傾向のほうが、ひとつの万能な閾値より信頼できます。
モニタが役立つところ
アクティビティモニタ、powermetrics、または Mole のステータス表示は、プロセス負荷、熱の推移、ファンの挙動をひとつのタイムラインに置けます。その対応づけは有用です。ファンを手動で強制することでは、アイドル時の発熱源、塞がれた通気、故障したハードウェアを見つける代わりにはなりません。
繰り返しできる診断
負荷、kernel_task の推移、熱状態を記録し、原因を止めて Mac を冷やし、同じ負荷をもう一度かけます。応答が負荷に追従し、回復するなら保護は機能しています。アイドル時や特定のアクセサリで起きるなら、ハードウェアを切り分け、診断を実行してください。カーネルの無効化や強制終了は、決して試みないでください。