ガイド/CPUやメモリを使っているアプリ
MacのCPUとメモリの使用状況をアプリごとに確認する方法
結論
アクティビティモニタを開き、“CPU”をクリックして“% CPU”で並べ替えるか、“メモリ”をクリックして“メモリ”で並べ替えます。上位の行が、いま最も多く使っているものです。“表示” → “すべてのプロセス(階層表示)”を選ぶと、ヘルパープロセスが起動元のアプリの下に表示されます。メモリは“使用済みメモリ”ではなく“メモリプレッシャー”のグラフで判断します。緑ならメモリは足りています。Mac用システムモニタのVitalsなら、ヘルパーも含めてアプリごとに1行で表示し、過去数時間から30日間で最も多く使ったアプリもわかります。
CPUやメモリを使っているアプリを確認する方法
- 01 ⌘Spaceを押し、“アクティビティモニタ”と入力してReturnキーを押します。
- 02 “CPU”をクリックし、最も高い値が一番上に来るまで“% CPU”の列見出しをクリックします。
- 03 “メモリ”をクリックし、同じように“メモリ”の列見出しをクリックします。
- 04 “表示” → “すべてのプロセス(階層表示)”を選びます。ヘルパープロセスが起動元のアプリの下に移動するので、ブラウザのタブはブラウザの下に並びます。
- 05 “メモリ”タブの下部にある“メモリプレッシャー”のグラフを見ます。緑なら、“使用済みメモリ”がどれだけいっぱいに見えても、メモリは足りています。
- 06 常に画面に表示しておけるメーターが欲しい場合は、“ウインドウ” → “CPU使用率”を選びます。コアごとの直近数分の推移は、“ウインドウ” → “CPUの履歴”で確認できます。
忙しいアプリを終了するには、アプリを選択してツールバーの停止ボタン(×が付いた八角形)をクリックし、“終了”を選びます。“強制終了”は応答しないアプリにだけ使います。kernel_taskやWindowServerなどのシステムプロセスには手を出さないでください。これらが忙しいのは、ほかの何かが忙しいからです。
アクティビティモニタが得意なのは、“いま何が忙しいか”という1つの問いです。そのあとに続く問いには、あまりはっきり答えてくれません。このプロセスはどのアプリのもの? メモリの数値が高いのは問題? 1時間前にファンが回り始めたとき、CPUを使っていたのは何? 下の表では、どの数値がどの問いに答えるかを示し、そのあとのセクションで特に混乱しやすい数値を説明します。
どの数値がどの問いに答えるか
| 知りたいこと | 確認する場所 | 見る数値 |
|---|---|---|
| いまCPUを使っているアプリは? | アクティビティモニタ → CPU | “% CPU”を高い順に並べ替え。100%で1コアをフルに使用 |
| Mac全体はどれくらい忙しい? | アクティビティモニタ → CPU(下部) | “システム”、“ユーザ”、“アイドル状態”。合計すると100% |
| メモリを最も使っているアプリは? | アクティビティモニタ → メモリ | “メモリ”を高い順に並べ替え、“表示” → “すべてのプロセス(階層表示)” |
| Macのメモリは足りている? | アクティビティモニタ → メモリ(下部) | “メモリプレッシャー”: 緑なら問題なし、黄色なら余裕が少ない、赤なら不足 |
| Macがディスクをメモリ代わりに使っている? | アクティビティモニタ → メモリ(下部) | “スワップ使用領域”と、それが増え続けているかどうか |
| 1時間前に忙しかったのは? | アクティビティモニタ → エネルギー | “12時間の電力”。履歴がわかる唯一の列 |
% CPUが100%を超える理由
“% CPU”の列は1コアに対する割合で、各コアがそれぞれ100%として数えられます。4つのコアをフルに使っているアプリは400%と表示され、10コアのMacなら列の合計は1,000%にもなります。リストの下にある“システム”、“ユーザ”、“アイドル状態”の数値はMac全体に対する割合です。そのため、列の合計は100%にならなくても、こちらは常に合計100%になります。
Appleシリコンでは、コアはすべて同じではありません。高効率コアはバックグラウンドの処理をわずかな電力で受け持つので、高効率コアの1つで100%のプロセスは、数値から受ける印象よりずっと少ししかMacを使っていません。どのコアが忙しいかは“ウインドウ” → “CPUの履歴”で確認できます。高効率コアが先にまとめて表示されます。
1つのアプリが数十個のプロセスとして表示される理由
ブラウザやWeb技術で作られたアプリは、処理をヘルパープロセスに分けています。タブやサイトごとに1つ、グラフィックス用に1つ、ネットワーク用に1つ、機能拡張ごとに1つ、という具合です。ChromeではGoogle Chrome HelperやGoogle Chrome Helper (Renderer)として、Safariではタブがサイトのアドレスで表示されます。1つのアプリが30〜40行になることもあり、どの行も単独では大きく見えません。ブラウザについてはChromeのメモリ使用量が多すぎるときを参照してください。
“表示” → “すべてのプロセス(階層表示)”を選ぶと、各ヘルパーが起動元のアプリの下に表示され、どのアプリのものかがわかります。ただしアクティビティモニタは合計を出してくれません。“メモリ”の列を自分で足し合わせると、プロセス間で共有されているメモリがそれぞれに数えられるため、多めになります。合計はおおよその上限と考えてください。
メモリ使用量が多いのが問題になるとき、ならないとき
“使用済みメモリ”が“物理メモリ”に近いのは普通のことです。macOSは最近使ったファイルを“キャッシュされたファイル”としてメモリに保持し、ディスクを使う前にメモリを圧縮します。使われていないメモリは無駄なメモリです。バーがいっぱいなのは、お金を払って手に入れたメモリをmacOSがきちんと使っているということです。
Macのメモリが足りているかどうかを示すのは“メモリプレッシャー”です。緑なら、すべて収まっています。黄色は、macOSが圧縮とスワップでなんとか対応している状態で、Appleシリコンならしばらくは問題ありません。赤は対応しきれていない状態で、アプリの動作が遅くなったり応答しなくなったりします。“スワップ使用領域”が1日を通して増え続けるのも同じサインです。ターミナルでは、memory_pressureの最後にMac全体で空いているメモリの割合が表示されます。
- 普段の作業中にメモリプレッシャーが黄色や赤になる: 同時に開くアプリを減らすか、次に買うときはメモリを増やしましょう。AppleシリコンのMacのメモリはあとから増設できません。RAMを解放する方法を参照してください。
- 原因のアプリを終了してもメモリプレッシャーが赤のまま: Macを再起動します。
- 使い方は変わらないのに、1つのアプリの“メモリ”の数値が増え続ける: メモリリークの可能性が高いです。終了して開き直し、アップデートしましょう。
上位に表示されがちなシステムプロセス
最も忙しい行のいくつかはmacOS自身のものです。たいていはほかの何かのために働いているので、知るべきなのは何がきっかけになったかです。
- kernel_task: CPU使用率が高いのは、たいていMacが熱すぎるからです。macOSはプロセッサを忙しく見せることで、熱を出す処理に使える時間を減らしています。Macのファンがうるさくなる理由を参照してください。
- WindowServer: 画面上のすべてを描画します。アプリが絶えず再描画しているときや、複数のディスプレイを接続しているときに忙しくなります。
- mds_storesとmdworker: Spotlightのインデックス作成です。macOSのアップデート後や大量のコピーのあとに負荷が高くなります。
- photoanalysisdとmediaanalysisd: “写真”がライブラリを解析しています。自然に終わります。
- launchd: ほかのすべてのプロセスを起動します。これが忙しいときは、ログイン項目やバックグラウンドタスクが再起動を繰り返しています。
ターミナルでCPUとメモリを確認する方法
ターミナルなら、ウインドウを開かずに同じ数値が得られます。SSH経由やスクリプトで便利です。
top -o cpuを実行するとCPU順、top -o memならメモリ順のリストがリアルタイムで表示されます。qキーを押すと終了します。ps -Ao pid,pcpu,rss,comm -r | head -11を実行すると、いまCPUを最も使っている10個のプロセスが表示されます。メモリ順に並べるには-rの代わりに-mを使います。rssの列の単位はキロバイトです。memory_pressureを実行すると、“メモリプレッシャー”のグラフの元になるメモリ統計が表示されます。最後の行に、空いているメモリの割合が表示されます。
本当に効果のあること
動作が遅くなる原因はたいてい1つで、対処法はメモリ全般を解放することではなく、その原因を見つけることです。
- リストの最上位にあるアプリを終了するかアップデートします。ブラウザなら、忙しいタブを閉じるか、原因の機能拡張をオフにします。
- macOSのアップデート後は、Spotlightと“写真”が処理を終えられるよう、数時間電源につないでおきます。
- メモリ解放アプリや
purgeコマンドは使わないでください。macOSがすぐに作り直すファイルキャッシュを空にするだけで、作り直すまでMacはかえって遅くなります。ほかの理由でMacが遅い場合は、Macが遅いのはなぜ?を参照してください。 - 原因となったアプリを終了してもメモリプレッシャーが赤のままのときや、プロセスが固まって“強制終了”でも終わらないときは、再起動します。
Vitalsでできること
Vitalsはプロセスではなくアプリで一覧表示し、それぞれが使った量を記録します。
- すべてのヘルパーを含めてアプリごとに1行: 約1,000個のプロセスではなく約60個のアプリ
- ブラウザをクリックすると、CPUとメモリがタブ、機能拡張、グラフィックス、ブラウザ本体に分けて表示
- すべてのアプリのCPUとメモリを30日間記録し、過去1時間、12時間、24時間、7日間、30日間でランキング
- バックグラウンドのアプリがCPUを使い続けたとき、アプリのメモリ使用量が増え続けたとき、Macのメモリが足りなくなったときに通知
知っておくと便利なこと
- CPUは、アクティビティモニタと同じ1コア基準か、Mac全体に対する割合かを、設定 → 一般 → 単位で選べます。
- kernel_taskやWindowServerなどのrootプロセスやシステムプロセスは、オプションのヘルパーをオンにすると計測されます。
- Vitalsにはプロセスのサンプル収集やspindumpの機能はありません。それにはアクティビティモニタを使います。
よくある質問
MacのCPU使用率を確認するには?
アクティビティモニタを開き、“CPU”タブをクリックして“% CPU”で並べ替えます。上位の行が最も多く使っているものです。下部の“システム”、“ユーザ”、“アイドル状態”の数値で、Mac全体の忙しさがわかります。ターミナルでリアルタイムに見るには、top -o cpuを実行します。
アプリごとのメモリ(RAM)使用量を確認するには?
アクティビティモニタを開き、“メモリ”をクリックして“メモリ”の列で並べ替えます。“表示” → “すべてのプロセス(階層表示)”を選ぶと、アプリのヘルパープロセスがその下に表示されます。アクティビティモニタは合計を出しませんが、Vitalsは合計します。
何も開いていないのにMacのメモリ使用量が多いのはなぜ?
macOSは最近使ったファイルを“キャッシュされたファイル”としてメモリに保持し、一部を“確保されているメモリ”として自分用に確保しています。このメモリは、アプリが必要とした瞬間に明け渡されます。“メモリプレッシャー”を確認しましょう。緑なら問題はありません。
MacのCPU使用率はどれくらいが普通?
何もしていないとき、“CPU”タブの下部にある“アイドル状態”はたいてい90%を超えていて、アプリやバックグラウンドタスクが動くと一瞬だけ跳ね上がります。使っていないのに上位にい続けるアプリがあれば、確認してみる価値があります。
メモリプレッシャーが黄色なのは問題?
それだけでは問題ではありません。macOSがメモリを圧縮し、スワップを使って対応しているということで、Appleシリコンはこれをうまく処理します。普段の作業中に毎日黄色になる、または赤になるなら、使っているものに対してメモリが足りていません。
MacでCPUとメモリをアプリごとにもっと簡単に確認する方法はある?
Vitalsはヘルパープロセスも含めてアプリごとに1行で表示するので、ブラウザやSlackのCPUとメモリがそれぞれ1つの数値でわかります。すべてのアプリについて、両方を30日分記録します。