iimon TECH BLOG

iimonエンジニアが得られた経験や知識を共有して世の中をイイモンにしていくためのブログです

Macのアクティビティモニタを理解する

はじめに

株式会社iimonエンジニアのかとうです!

Macのファンがうるさくなったり、動きが遅くなったり固まったりしたときに、私はまずアクティビティモニタを確認します💧

不要なプロセスの終了にしか使用したことがなかったので、他にもどのように使えるか調べてみました。

本記事では、アクティビティモニタのCPU・メモリ・エネルギータブに表示される項目の意味と見方について解説します☘️

アクティビティモニタとは

macOSには アクティビティモニタ というシステムモニタリングツールが最初から入っていて、Macで実行しているプログラム(プロセス)が使用しているメモリの容量やCPU時間などを知ることができます。表示される情報は5秒ごとに更新されます。

また、大量のリソースを消費しているアプリなど、問題の原因となっている可能性のあるプロセスを強制終了することができます。

確認できること

アクティビティモニタには5つのタブがあります。

それぞれのタブで確認できる内容は以下の通りです。

タブ名 概要
CPU どのプロセスがCPUを多く使っているか
メモリ メモリの使用状況は十分か、スワップが発生していないか
エネルギー どのアプリがバッテリーを消費しているか
ディスク どのプロセスがストレージを多く読み書きしているか
ネットワーク どのプロセスが通信を行っているか

プロセスとは

アクティビティモニタではプロセスの動作状況を表示することができます。ここでいうプロセスとは、以下のことを表します。

プロセスとは、Macで実行しているプログラムのことです。プロセスには、アプリ、macOSが使用するシステムアプリ、または不可視のバックグラウンドプロセスがあります。

アクティビティモニタでMacプロセスに関する情報を表示する - Apple サポート (日本)

具体的には、以下のようなものがあります。

  • アプリ:Chrome、Finderなど、ユーザーが直接操作するアプリケーション
  • システムプロセス:画面描画を担うWindowServerや、プロセス管理を行うlaunchdなど
  • バックグラウンドプロセス:システム時計をネットワーク経由で同期するtimedや、iCloudとのデータ同期を行うclouddなど

CPUタブ

CPUタブでは、各プロセスがCPUとGPUをどの程度使用しているかを確認することができます。

  • CPU(Central Processing Unit):コンピューターで中心的な処理を行う装置です。プログラムを実行し、各装置を制御して情報の演算や加工を行います

  • GPU(Graphics Processing Unit):画像や映像の描画に必要な計算処理に適した半導体チップのことです。CPUが複雑な処理を得意とするのに対し、GPUは単純な計算の大量処理に特化しています

プロセス一覧

CPUタブのプロセス一覧には、デフォルトで以下のような列が表示されます。

列名 意味
プロセス名 実行中のプログラムの名前
%CPU そのプロセスが現在使用しているCPUの割合
CPU時間 そのプロセスが使用したCPU時間
スレッド そのプロセス内で動作しているスレッドの数
アイドル状態解除 スリープ状態のCPUをプロセスが起こした回数。多いとバッテリー消費の原因になる
種類 プロセスのアーキテクチャ。「Apple」はApple Siliconネイティブ、「Intel」はRosetta 2経由で動作していることを示す
%GPU そのプロセスが現在使用しているGPUの割合
GPU時間 そのプロセスが使用したGPU時間
PID プロセスを一意に識別する番号
ユーザ そのプロセスを開始したユーザー

一部の列はデフォルトでは非表示になっているので、メニューバーの「表示」→「表示項目」から、表示したい列にチェックを入れることで追加することができます。

グラフの表示

CPUタブのウィンドウ下のグラフには、Mac全体のCPU使用状況が表示されています。

項目 意味
システム macOS自体に属するプロセスが使用しているCPUの割合
ユーザ ユーザが起動したアプリやそのアプリが生成したプロセスが使用しているCPUの割合
アイドル状態 使用されていないCPUの割合
CPU負荷 時間経過に伴うCPU使用率を示すグラフ
スレッド CPU上で現在実行中のプロセスのスレッド総数
プロセス CPU上で現在実行中のプロセスの総数

再起動すると、CPU負荷が改善しました。

アプリを終了しても一部のバックグラウンドプロセスは動作し続け、長時間使用すると蓄積してCPU使用率の上昇につながります。

再起動することで、全プロセスを一度リセットして、必要なプロセスだけ立ち上げ直します。

メモリタブ

メモリタブでは、プロセスで使用されているシステムメモリの量を確認することができます。

  • メモリ:データやプログラムの内容を記憶する装置のことで、CPUが処理するデータやプログラムを一時的に記憶する半導体記憶装置
  • RAM:コンピューターで一般的に使われる記憶装置に装備されたメモリ。CPUが計算処理を行う際に利用する作業用のメインメモリ
  • ストレージ:コンピューターの外部記憶装置のこと。コンピューターで使われるプログラムやデータなどを保存する

メモリの全体像

グラフの表示

メモリタブの下部には、すべてのプロセスの合計が表示されています。

各項目の意味

項目 意味
物理メモリ Macに搭載されているRAMの総量
使用済みメモリ 現在使用されているRAMの総量
キャッシュされたファイル 未使用メモリにキャッシュされたファイルのサイズ
スワップ使用領域 RAMに収まりきらないデータがストレージ(SSD/HDD)に退避された量

「使用済みメモリ」の内訳として、さらに以下の3つが表示されます。

項目 意味
アプリメモリ アプリが使用しているメモリ量
確保されたメモリ システムの動作に必要なメモリ。キャッシュできず、常にRAM上に保持される
圧縮 他のアプリがRAMを使えるように圧縮されたメモリの量

メモリプレッシャーグラフ

メモリプレッシャーのグラフから、メモリを効率的に使用しているかどうかを確認できます。

  • 🟢 :RAMを効率的に使用している
  • 🟡 :RAMが今後足りなくなる可能性がある
  • 🔴 :より多くのRAMが必要

メモリプレッシャーは、空きメモリ容量、スワップ率、確保されているメモリ、ファイルキャッシュメモリによって決まります。

私の環境ではメモリプレッシャーが黄色だったため、プロセスを確認して対応しました。

VSCodeの不要な拡張機能の削除、Chromeタブの削除、未使用のDockerコンテナの停止などを行った結果、メモリプレッシャーは緑色に改善しました。

スワップ使用領域

スワップ使用領域とは、未使用のデータをRAMとストレージの間で入れ替えるために、ストレージ上で使用されている領域の量のことです。

スワップ使用領域が大きい場合、RAMの代わりにストレージへの読み書きが増えるため、Macの動作が遅くなることがあります。この値が大きい場合は、不要なアプリを終了するか、Macの再起動で改善できることがあります。

再起動後、メモリプレッシャーはさらに改善しました。

再起動で改善する主な理由は以下です。

  • スワップ領域のリセット:スワップに退避されたデータはアプリを終了しても即座に解放されず、再起動するまでディスク上に残り続けます。再起動時にmacOSはスワップファイルを削除して再作成するため、蓄積分がゼロに戻ります。
  • メモリリークの解消:メモリリーク(不要になったメモリを解放しないバグ)を持つプロセスがあると、時間の経過とともにアプリケーションやシステムのパフォーマンスに影響を与えます。再起動でプロセスが終了するため、リークしていたメモリも解放されます。

エネルギータブ

エネルギータブでは、どのアプリとプロセスが最もエネルギーを消費しているかを確認することができます。

プロセス一覧の主な列

列名 意味
エネルギー影響 現在のエネルギー消費量の相対的な指標
12時間の電力 過去12時間またはMacコンピュータが起動してからの平均エネルギー消費量
App Nap App Nap機能が有効かどうか。「はい」の場合、バックグラウンドで省電力モードになっている
非スリープ そのプロセスがMacのスリープを妨げているかどうか

App Napは、アプリのCPU使用率を調整し、タイマーの起動頻度を減らすことで、バッテリー寿命を節約する機能です。

ウィンドウ下部の表示

項目 意味
エネルギー影響 Mac全体のエネルギー消費量の推移グラフ
充電残量 バッテリーの残量の割合
残り時間(電源未接続時) バッテリーの推定残り時間
バッテリー電源の使用時間(電源未接続時) 充電器から外してから経過した時間
充電完了までの時間(電源接続時) バッテリーが完全に充電されるまでの残り時間
AC電源の使用時間(電源接続時) 充電器に接続してから経過した時間
バッテリー(過去12時間) 過去12時間のバッテリー残量の推移グラフ

電源未接続時

  • 充電残量:58%
  • 残り時間:5時間17分
  • バッテリー電源の使用時間:16時間37分(スリープ時間も含む)

電源接続時

  • 充電残量:71%
  • フル充電までの時間:1時間1分
  • AC電源の使用時間:2分

まとめ

  • CPUタブで負荷の高いプロセスを見つけ、不要なプロセスの終了や再起動を検討する
  • メモリタブでメモリプレッシャーの色を確認し、黄色や赤であれば不要なプロセスの終了や再起動を検討する
  • エネルギータブでバッテリー消費の多いアプリや状況を確認する

おわりに

ここまで読んでくださりありがとうございます!✨

弊社ではエンジニアを募集しております!少しでもご興味がありましたら、カジュアル面談でお話ししましょう!

iimon採用サイト / Wantedly

参考資料