MacBook Proが熱いとき|発熱の原因になるアプリの特定
MacBook Proが熱いときに必要なのは、冷やす道具ではなく名前を1つ突き止める作業になる。ファンを持つ機体では、熱は自動的に風へ変換されるため、放置しても壊れる方向へは進みにくい。それでも手触りが熱く、ファンが回り続ける状態が続くなら、熱を作り続けているものが動いている。この記事では、アクティビティモニタのどの列を見て、上位に並ぶ名前をどう読み、特定できたあと何から止めるのかを順に並べる。
熱いという症状を、原因の候補に分解する
熱は結果であって原因ではない。ファンの回転も同じで、温度が上がったから回っているという順番になる。Appleは、内部の温度変化を検知するセンサーがあり、ファンを搭載したモデルでは自動的にファンが作動すると案内している。
原因の候補は3つに分かれる。1つ目は続いている計算負荷で、2つ目は描画の負荷、3つ目は置き方や室温といった環境の条件になる。このうち計算負荷と描画負荷は画面から名前で特定できるため、先にそちらを当たる。環境の条件は名前が出ないので、候補を外していく形で扱う。
紛らわしいのは、熱を下げるために働いているプロセスが、犯人のように見えてしまう場合になる。
kernel_taskは、その機能の1つとして、CPUを集中的に使っているプロセスのCPU使用率を下げるというやり方で、CPUの温度管理を助けています。つまり、kernel_taskは、CPUがこれから高温になるだろうという状況に対処するため、その時点ではMac本体の温度が高く感じられない場合もあります。その状況を引き起こしている張本人ではありません。 出典: support.apple.com
つまり、アクティビティモニタで kernel_task が上位に来ていたら、それは症状が進んでいる合図であって、終了させる対象ではない。CPUの温度が下がればこの活動は自動的に収束する。探すべきは、その下に並んでいる別の名前になる。
見る列を3つに決める
アクティビティモニタは情報が多いため、見る列を決めてから開く。決めておかないと、目に入った数字で結論を出してしまう。
1つ目はCPUのパネルにある%CPUの列で、いまこの瞬間にどれだけ使っているかを示す。2つ目は同じパネルのCPU時間の列で、起動してからの累積になる。3つ目はエネルギーのパネルにある12時間の電力の列で、過去12時間を通した平均を示す。
熱の原因を探すときに効くのは、2つ目と3つ目になる。熱は瞬間の負荷では上がらず、同じ負荷が続いた時間の長さで上がる。%CPUだけを見ていると、たまたま覗いた瞬間に動いていたものを犯人にしてしまう。CPU時間の列を降順に並べ替えると、起動してから一番長く計算していたものが上に来るため、居座っているものが見つかる。
表示メニューから過去12時間のアプリケーションを選ぶと、その間にプロセスを動かしていたアプリだけに絞れる。閉じたつもりで常駐していたもの、ログイン時に自動で起動していたものは、この絞り込みで初めて姿を見せることが多い。
上位に並ぶ名前の意味を先に知る
初めてこの画面を見ると、自分が起動した覚えのない名前が並んでいて戸惑う。実際に多い質問がこれになる。
最近macbook pro 16インチ 2019を購入したのですが、メモリの使用率が気になって、アクティビティモニタで確認した所、Windowserverというものが500MB程で作動している事に気づいたのですが 出典: detail.chiebukuro.yahoo.co.jp
WindowServerは画面の描画を担うプロセスになる。窓の重なり、影、アニメーション、外部ディスプレイへの出力が、すべてここを通る。だからこの名前が上位に来たときは、計算ではなく描画の側で負荷が出ていることになる。終了させる対象ではなく、何を描かせているかを減らす対象になる。
同じように、覚えておくと判断が速くなる名前がいくつかある。mdsやmdworkerは検索の索引を作るプロセスで、移行直後やアップデート直後に上位へ来る。photoanalysisdは写真ライブラリの解析、backupdはバックアップになる。これらはいずれも終わりのある処理なので、電源に繋いだまましばらく置くと自然に収束する。逆に、何時間経っても同じ名前が同じ位置に居座っているなら、終わりのない処理として個別に扱う対象になる。
ブラウザだけは名前で特定できない
ここで手順が1回止まる。上位に並んでいるのがブラウザの補助プロセスだった場合、名前からは何が動いているのか分からない。描画や実行を担うプロセスは同じ名前で何本も並ぶため、どれがどのページなのかが表に出ない。
ブラウザ自身が持つタスクマネージャを開けば、ページごとの負荷を見られる。ただし、そこで分かるのはページの題名までで、閉じてよいものかどうかの判断には別の情報が必要になる。会議の画面、自動で更新し続けるダッシュボード、動画の再生、地図の表示は、どれも負荷が高く、どれも閉じてよいとは言えない。
この詰まりの本体は、複数のWebアプリが1つのアプリの中に同居していることになる。メールもチャットも管理画面も同じブラウザのタブとして開いていると、アクティビティモニタの上では区別がつかない。1つのアプリが重いと分かっても、その中のどれを止めるべきかが画面から読めない状態になる。
描画で出ているのか、計算で出ているのかを分ける
WindowServerが上位にいる場合は、確かめる先が変わる。ウインドウメニューからGPUの履歴を開くと、描画側の負荷が時間の軸で見える。外部ディスプレイを繋いだとき、高い解像度で表示しているとき、複数の画面で動きのあるページを開いているときは、こちらが上がる。
外部ディスプレイは条件を一段重くする。2枚目の画面を繋いだ状態で同じ作業をしたときと、繋がない状態でしたときを比べると、ファンの回り方が変わることがある。これは故障ではなく、描かせている面積が増えた結果になる。負荷を下げたいなら、動きのあるページを繋いだ画面側に置かない、使っていない画面の表示を止める、といった手当てが効く。
計算側で出ているなら、CPUのパネルでシステムとユーザの内訳も見ておきたい。ユーザ側が高いなら自分が開いたものが原因で、システム側が高いなら常駐している仕組みや索引の作成が動いていることになる。どちらの側で出ているかで、次に止めるものが変わる。
止める順番を決めておく
特定できたあとは、影響の小さいものから順に止める。順番を決めておくと、作業中のデータを失う事故が減る。
最初はページやタブの単位になる。動画の再生や自動更新を止めるだけで収まることは多い。次がアプリの単位で、command + Qで通常の終了を試す。反応しないときだけ、option + command + escで強制終了の窓を開く。ここまでで収まらない場合に、ログイン項目を見直す。システム設定の一般にあるログイン項目を開くと、起動時に自動で立ち上がるものが並んでいるので、心当たりのないものを外す。
再起動は最後になる。再起動すれば熱は一時的に下がるが、原因が消えたわけではないので、同じ作業をすれば同じ状態に戻る。名前を突き止める前に再起動すると、手がかりが消えてしまう点も不利になる。Appleシリコン搭載のMacで負荷に見合わない回転が続く場合の手当てとして、蓋を閉じてから再び開ける、コンピュータを再起動する、という手順が案内されている。
同じ作業でも、日によって熱さが変わる理由
昨日と同じ作業なのに今日は熱い、という状態はよく起きる。原因は本体ではなく周囲にあることが多い。Appleは、周辺温度が高いとすぐにファンが回り出し、高速回転すると説明している。室温が数度違えば、同じ負荷でも回り方は変わる。
季節以外にも条件は動く。充電しながら重い作業をしていると、電源アダプタ側の発熱が机の上の温度を上げる。窓際で天板に日が当たっていれば、外から温められて逃げ場が減る。前の日に入れたアップデートが索引の作り直しを走らせていることもある。つまり、比べるなら同じ室温と同じ電源の状態でそろえる必要がある。
比較の手順を決めておくと迷わない。電源を繋がない状態で、同じアプリだけを開いて10分置き、そのときの回転と手触りを基準にする。そこから1つずつ条件を足していけば、どの条件で跳ね上がるのかが分かる。条件を一度に変えると、原因が混ざって読めなくなる。
ファンの音と手触りは別の情報として扱う
ファンが回っていること自体は設計どおりの動きになる。Appleは、負荷のかかる作業が実行されている場合にファンの回転が速くなり送風量が増えると説明しており、こうした風切り音は冷却工程で通常発生するものだとしている。つまり音は、熱が外へ運ばれている証拠になる。
音と手触りが食い違う場合に情報が増える。音は大きいが筐体はそれほど熱くないなら、放熱は間に合っている。音は小さいのに筐体が熱いなら、通気が妨げられているか、ファンが十分に回っていない可能性がある。後者は置き方を変えて再現するかを確かめる対象になる。
どちらの場合も、最初に見る画面は同じになる。負荷に見合わない回転が続いているかどうかを、時間の軸で確かめることから始める。
環境側の条件も同時に外す
計算と描画を確かめるのと並行して、放熱の条件も外しておく。Appleは周辺温度10度から35度の場所で使うこと、通気の良い安定した作業台の上で使うこと、ベッドの中や枕の上、寝具類の下では使わないこと、キーボードの上に何も置かないこと、通気孔に物を入れないことを案内している。
膝の上やクッションの上での使用は、底面と側面からの放熱を布が受け止めるため、同じ作業でも温度が上がる。書類を重ねた上に置く、ケースに入れたまま使う、といった置き方も同じ結果になる。硬く平らな天板に直接置くだけで条件が変わるので、道具を買う前に試す価値がある。
他社製の温度計測アプリについては、それらが計測するのは外部ケースの温度ではないという注意も添えられている。ハードウェアの問題を判断する材料には使わないほうがよい。
常駐する画面を、名前で追える形にする
ここまでの手順で最後に残るのが、ブラウザの中身が名前で追えないという問題になる。原因の特定が1歩で終わるか2歩かかるかは、常駐しているWebアプリが別々のアプリとして立っているかどうかで決まる。
Webアプリを1つずつ独立した窓として扱う設計のブラウザでは、アプリごとに独立したワークスペースが単位になるため、アクティビティモニタの一覧でも別の行として並ぶ。会議の画面が熱を作っているのか、更新し続けるダッシュボードが作っているのかを、名前のまま読める。
窓の単位で持つ考え方はワークスペースのページに整理されている。どのサービスを独立した窓として扱えるかは使えるアプリで確認できる。常駐させる前提で何ができるかはできることにまとまっている。
熱の調査で時間を取られるのは、たいてい特定の段階になる。名前が読める形にしておけば、同じ症状が次に出たときの手数が1回で済む。
よくある質問
アクティビティモニタでkernel_taskが一番上に来ているのですが、終了させてよいですか?
終了させる対象ではありません。Appleの説明では、kernel_taskはCPUを集中的に使っているプロセスの使用率を下げることで温度管理を助けており、状況を引き起こしている張本人ではないとされています。CPUの温度が下がれば活動は自動的に収まるので、その下に並んでいる別の名前を探してください。
WindowServerの数字が大きいのは異常ですか?
WindowServerは画面の描画を担うプロセスなので、窓の数、アニメーション、外部ディスプレイへの出力が増えると数字は上がります。異常かどうかは、負荷の重い表示を止めたときに下がるかで判断できます。下がるなら描画側の負荷で、下がらないなら別の原因を当たることになります。
どのくらい熱ければ故障を疑うべきですか?
温度の数値で線を引くより、条件で切り分けるほうが確実です。重い作業をしていない、通気は確保している、上位のプロセスに心当たりがない、という3つが揃って回転が続く場合は、Appleへの相談が向きます。他社製の温度計測アプリの数値は外部ケースの温度ではないため、判断の材料には使わないよう案内されています。
外部ディスプレイを繋ぐと熱くなるのは仕様ですか?
描かせる面積が増えるため、描画側の負荷は上がります。故障ではありません。負荷を下げたい場合は、動きのあるページや自動更新する画面を繋いだ側に置かない、使っていない画面の表示を止める、という手当てが効きます。GPUの履歴を開くと、繋いだ前後で差が出ているかを確かめられます。