ロードアベレージ
別名: システム負荷、負荷平均
結論
ロードアベレージは、CPUで実行中または実行待ちの仕事量の平均で、通常は過去1分、5分、15分の3つの数値で表されます。UNIXの指標で、Macではuptimeコマンドで確認できます。
ロードアベレージが4.0なら、平均して約4つのスレッドが実行中か、実行できる状態で待っていたということです。それが多いかどうかは、MacのCPUコア数によります。8コアのMacなら、4.0の負荷にはまだ余裕があります。
アクティビティモニタにはロードアベレージは表示されません。代わりに、“CPU”タブには“システム”、“ユーザ”、“アイドル状態”の割合と“CPU負荷”のグラフが表示されます。ロードアベレージが役立つのは、主にターミナルやスクリプトです。
このページの内容
Macでロードアベレージを確認する方法
ターミナルを開いてuptimeを実行します。最後の3つの数値が、1分、5分、15分のロードアベレージです。sysctl -n vm.loadavgを実行しても確認できます。
コア数と比べるには、sysctl -n hw.logicalcpuを実行します。
3つの数値の読み方
1分の数値が15分の数値よりずっと高ければ、負荷は上がっています。低ければ、下がっています。負荷が長い間コア数を大きく上回っているなら、仕事がCPUを待っている状態で、Macは遅く感じられます。
ロードアベレージとアクティビティモニタの% CPUの違い
この2つは別のものを測っています。“% CPU”と“アイドル状態”の数値は、コアが忙しかった時間の割合を示します。ロードアベレージは、topのマニュアルの言葉を借りれば、実行キューにあるジョブの平均数、つまり実行中か実行できる状態のスレッドの数です。
そのため、2つの値が食い違うことがあります。アクティビティモニタでは“アイドル状態”がたっぷりあるのに、ロードアベレージがコア数を上回っていることもあります。短いタスクがたくさんあると、測定期間中ずっとすべてのコアを忙しくさせなくても、キューに積み上がることがあるからです。
2つを比べるには、ロードアベレージをsysctl -n hw.logicalcpuで調べたコア数で割ります。結果が1未満なら、平均して、コアを必要としたスレッドはすべてコアを使えたということです。
ロードアベレージをリアルタイムで見る方法
uptimeは3つの数値を1回表示します。変化を見るには、ターミナルでtopを実行します。上部近くの“Load Avg”で始まる行に1分、5分、15分の値が、その下のCPU usageの行にuser、sys、idleの割合が表示されるので、両方を同時に見られます。終了するにはqを押します。
メモやスクリプトに貼り付けられるスナップショットを1回だけ取るには、top -l 1 -n 0 | grep "Load Avg"を実行します。
ロードアベレージの高さが問題になるとき
負荷が高いのは症状であって、故障ではありません。Macの体感と合わせて読みましょう。
- 負荷がコア数を大きく上回ったままで、アプリの応答が遅いときは問題です。仕事がCPUの順番を待っているからです。
- ビルド、書き出し、大きなコピーの最中なら、あまり問題ではありません。そうした処理は、すべてのコアを使い切るのが当然です。
- Appleシリコンでは、コア数に高効率コアも含まれます。macOSは多くのバックグラウンド処理を高効率コアで行うので、負荷がコア数に近くても、使っているアプリのために高性能コアが空いていることがあります。
- はっきりした理由もなく負荷が上がり、下がらないなら、たいていその裏で忙しいプロセスが動いています。数値を心配する前に、そのプロセスを見つけましょう。
負荷を上げているものを見つける方法
- アクティビティモニタで“CPU”タブをクリックし、“% CPU”で並べ替えて、最も多く仕事をしているプロセスを探します。
- ターミナルで
top -o th -stats pid,command,cpu,thを実行します。#THの列にはスレッドの総数と、スラッシュの後にいま実行中の数が表示されます。 - 実行中のスレッドが複数あるプロセスが、負荷を最も押し上げています。不要なものを終了し、数分後に負荷をもう一度確認しましょう。1分の値が最初に反応します。
よくある質問
Macのロードアベレージはどれくらいが普通?
コア数によります。負荷がコア数以下なら、たいていCPUは処理に追いついています。長い間コア数を大きく上回っているなら、仕事が順番待ちになっています。
アクティビティモニタでロードアベレージは見られる?
いいえ。アクティビティモニタに表示されるのは、“システム”、“ユーザ”、“アイドル状態”の割合と“CPU負荷”のグラフです。ロードアベレージを見るには、ターミナルでuptimeを使います。
CPU使用率は低いのにロードアベレージが高いのはなぜ?
ロードアベレージには、実行中の仕事だけでなく、実行を待っている仕事も含まれるからです。短いタスクがたくさんあったり、順番待ちのタスクがあったりすると、CPUの割合がそれほど高くなくてもロードアベレージは上がります。
8コアのMacでロードアベレージはどれくらいが普通?
負荷が8以下なら、CPUは処理に追いついています。それを一時的に超えるのは普通です。長い間8を大きく上回り、Macの動作も重いなら、仕事が順番待ちになっています。
ロードアベレージはパーセンテージ?
いいえ。実行中か実行を待っているスレッドの平均数です。負荷2.0は約2つのスレッドという意味で、何かの2%ではありません。
ロードアベレージにGPUは含まれる?
いいえ。数えるのはCPUを待っているスレッドです。GPUが行っている処理は加算されないので、グラフィックスの負荷はアクティビティモニタの“% GPU”で確認します。
関連項目
アクティビティモニタより優れたものをお探しなら、Mac向けアクティビティモニタの代替アプリのおすすめをご覧ください。用語集のすべての用語も見られます。