% CPU
別名: CPU使用率、100%を超えるCPU
結論
“% CPU”は、プロセスが使っているプロセッサ能力の割合で、CPUコア単位で測られます。コア1つが100%として数えられるため、複数のコアを同時に使うプロセスは100%を超えることがあります。
アクティビティモニタの“% CPU”の列は、プロセスがどれだけプロセッサを働かせているかを示します。100%なら、そのプロセスはコア1つ分をフルに使っているということです。8コアのMacでは、全プロセスの合計の上限は800%になります。
数値が高いからといって、必ずしも問題とは限りません。ビデオの書き出し、コードのコンパイル、ファイルのインデックス作成などは、しばらくCPUを多く使って当然です。問題になるのは、何も頼んでいないのにプロセスが高い値のままのときです。
% CPUが100を超える理由
アクティビティモニタは、プロセスがすべてのコアで使った時間を合計します。アプリが3つのコアで全速力で処理を行えば、約300%と表示されます。ビデオ編集アプリ、コンパイラ、ブラウザなど、多数のスレッドを使うように作られたアプリではごく普通のことです。
“CPU”タブの下部にある“システム”、“ユーザ”、“アイドル状態”の数値は仕組みが異なります。これらはプロセッサ全体を表すので、合計すると100%になります。
% CPUからわからないこと
“% CPU”が測るのは、コアが忙しくしている時間の割合であって、コアがどれだけ速く動いているかではありません。Appleシリコンでは、高性能コアと高効率コアがどちらも100%と表示されていても、こなしている仕事量は大きく違うことがあります。
アプリが応答しているかどうかもわかりません。何かを待っている間に0% CPUのまま固まっていることもあれば、400%でも問題なく応答していることもあります。
CPUを使っているものを見つける方法
アクティビティモニタを開き、“CPU”タブをクリックして、“% CPU”の列見出しをクリックすると、高い順に並べ替えられます。値は更新のたびに変わるので、数秒間様子を見ましょう。
ターミナルでは、top -o cpuで同じ一覧がCPU使用率順に表示されます。終了するにはqを押します。
Macの% CPUの上限を調べる方法
“% CPU”の上限は、macOSが仕事を割り当てられるコアの数×100%です。推測しなくても、ターミナルでその数を調べられます。
- “アプリケーション > ユーティリティ”からターミナルを開きます。
sysctl -n hw.logicalcpuを実行します。論理コアの数が表示されます。- その数に100を掛けます。それが全プロセスの合計で表示される“% CPU”の最大値であり、1つのプロセスがすべてのコアを使い切ったときに到達する最大値でもあります。
- Appleシリコンを搭載したMacでは、
sysctl hw.perflevel0.logicalcpu hw.perflevel1.logicalcpuを実行すると、そのうち何個が高性能コアで何個が高効率コアかがわかります。
AppleシリコンとIntel: 何がコアとして数えられるか
ハイパースレッディングに対応したIntel搭載Macでは、物理コア1つが論理コア2つとして現れます。sysctl -n hw.physicalcpuで物理コアの数が、sysctl -n hw.logicalcpuで論理コアの数がわかり、“% CPU”は論理コアの数を基準に測られます。そのため、物理コアが4つのIntel搭載Macでは、1つのプロセスが最大800%と表示されることがあります。
Appleシリコンはハイパースレッディングを使わないので、物理コアと論理コアの数は同じです。Appleシリコンで違いが出るのは、高性能コアと高効率コアの組み合わせです。高効率コアで100%のプロセスは、高性能コアで100%のプロセスよりこなす仕事が少なくなります。
アプリがAppleシリコンでネイティブに動いているか知りたい場合は、“表示 > 表示項目”を選び、“種類”をオンにします。ネイティブのアプリには“Apple”、Rosettaの変換を通して動いているアプリには“Intel”と表示されます。
アプリが本当にCPUを使いすぎているか見分ける方法
Appleによれば、ほとんどの場合、Macは処理能力のごく一部しか使っていません。理由がはっきりしている高い数値なら問題ありません。本当の問題を示すサインは次のとおりです:
- 使っていないのに、アプリが何分も高い値のまま。
- 約100%のまま動かない。1つのスレッドがループから抜けられず、コア1つを丸ごと使っていることがよくあります。
- アプリがバックグラウンドにあるのに、“CPU時間”の列がどんどん増えていく。
- 同時に、ファンの音が大きくなる、Macが温かくなる、バッテリーの減りがいつもより速くなる。
- 処理の原因になったウインドウ、書類、タブを閉じても値が下がらない。
CPUを使い続けるアプリへの対処法
- アクティビティモニタで“CPU”タブをクリックし、“% CPU”で並べ替えます。短いスパイクに惑わされないよう、1分ほど様子を見ます。
- そのプロセスがヘルパーなら、“表示 > すべてのプロセス(階層表示)”を選ぶと、どのアプリに属しているかがわかります。
- 作業内容を保存して、アプリを通常どおり終了します。応答しなければ、選択して“強制終了”を使います。
- アプリをもう一度開きます。思い当たる理由がないのにCPU使用率がまた上がるなら、開発元からのアップデートがないか確認します。
- 何度も起きるなら、アクティビティモニタでプロセスのサンプルを収集し、開発者に送ります。アプリが何をしていたかがわかります。
よくある質問
MacでCPUが100%を超えるのはどういう意味?
そのプロセスが同時に複数のCPUコアを使っているということです。コア1つが100%なので、2つのコアをフルに使うプロセスは200%と表示されます。
アプリの% CPUはどれくらいが普通?
使っていないアプリは、たいていほとんどの時間0%近くにとどまっているはずです。短いスパイクは普通です。バックグラウンドのアプリが何分も高い値のままなら、詳しく調べる価値があります。
何も開いていないのにMacのCPU使用率が高いのはなぜ?
macOSは、Spotlightのインデックス作成、写真の解析、バックアップなどのバックグラウンド処理を、Macがアイドル状態のときによく行います。こうした処理は、終わればたいてい落ち着きます。
MacでCPU 100%は悪いこと?
それだけでは問題ありません。100%はコア1つがフルに使われているという意味で、書き出しやビルドの最中なら普通です。問題になるのは、アプリがアイドル状態のはずなのにそれが続く場合だけです。
“CPU負荷”のグラフは半分空いているのに、アプリが400%と表示されるのはなぜ?
プロセスごとの“% CPU”はコア1つを基準に測られますが、“システム”、“ユーザ”、“アイドル状態”の数値はプロセッサ全体を表しているからです。8コアのMacなら、400%のプロセスは全体の約半分を使っています。
アクティビティモニタは% CPUをどれくらいの頻度で更新する?
“表示 > 更新の頻度”で選べます。“非常に多く(1秒ごと)”、“多く(2秒ごと)”、“標準(5秒ごと)”のいずれかです。Appleは、更新を速くすること自体がパフォーマンスに影響する場合があると注意しています。
関連項目
詳しい手順: CPUやメモリを使っているアプリ。
アクティビティモニタより優れたものをお探しなら、Mac向けアクティビティモニタの代替アプリのおすすめをご覧ください。用語集のすべての用語も見られます。