Levo ガイド · メモリ、CPU、GPU

「システムのアプリケーションメモリが不足しています」と出たときの対処法

このメッセージは、メモリとスワップの両方がいっぱいという意味です。ダイアログで「強制終了」を選び、メモリを一番使っているアプリ(macOS がサイズ付きで一覧表示します)を選んで終了します。そのあと、なぜ増えたのかを調べてください。1 つのアプリがリークしているなら、また起こります。

メモリ使用量の多いプロセスを、エージェントの理由と Quit ボタンとともに表示する Levo の Processes リスト
よくある原因見分け方対処
リークしているアプリ1 つのプロセスが数十 GB になっている終了し、アップデートして、毎日再起動する
タブの多いブラウザヘルパープロセスが多いタブを閉じるか、タブの休止機能を使う
仮想マシンまたは Docker大きなプロセスが 1 つ、一定のまま割り当てるメモリを減らす
開発サーバ、ビルドデーモンNode、Java、Gradle、長時間の稼働使っていないものを終了する
ローカルの AI モデルモデルのサイズと同じ大きさのプロセスが 1 つ小さいモデルを選ぶか、使っていないときは終了する

その場でやること

  1. ダイアログには、メモリ順に並んだアプリの一覧が表示されます。一番大きいものを選んで、強制終了をクリックします。そのアプリの未保存の作業は失われるので、切り替えられるなら先に保存してください。
  2. ダイアログが出ないときは、⌥⌘⎋ を押して「アプリケーションの強制終了」を開きます。
  3. Mac が固まったら、1 分待ってください。スワップが解消されると macOS が回復することがあります。最後の手段は電源ボタンの長押しですが、未保存の作業は失われると思ってください。
  4. 回復したら、アクティビティモニタ › メモリを開き、メモリ順に並べ替えます。何が増えたか確認しましょう。

原因を見つけて再発を防ぐ

使用済みスワップとメモリ列を見ます。ほかより桁違いに大きいプロセスが 1 つあれば、リークか暴走したタスクです。よくある原因は、重いページを開いたブラウザのタブ、数週間再起動していないアプリ、シミュレータやエミュレータ、キャッシュを保持するビルドツールです。終了し、アップデートを確認して、再起動してください。数時間でまた大きくなるなら、アプリの不具合です。古いバージョンか代わりのアプリを使いましょう。

ps -Ao pid,rss,etime,comm -m | head -n 10
sysctl vm.swapusage

最初のコマンドは、メモリ使用量の多い上位 10 個のプロセスを、それぞれの稼働時間とともに表示します(etime)。大きくて非常に古いものは怪しいです。

ディスクの空き容量も確認してください。スワップには SSD の空きが必要で、ディスクがほぼ満杯だと、このメッセージが出やすくなります。メモリとストレージの違いをご覧ください。

再発を防ぐ

回復後に数値を確認する

Mac が反応するようになったら、いくつかのコマンドで何が起きたかわかります。すべてを開き直す前に、すぐ実行してください。

memory_pressure
sysctl vm.swapusage
vm_stat | grep -E "Pageouts|Swapouts"
top -o mem -l 2 -n 8 | tail -n 12

開いているアプリが少ないのにスワップがまだ数十 GB あるなら、まだ何かがリークしています。Mac を再起動するのが妥当な次の手で、見えない原因を探すより時間もかかりません。

何度も繰り返す場合

  1. 最初の数回、ダイアログが名指ししたアプリを控えておきます。常習犯が答えです。
  2. そのアプリと macOS をアップデートします。メモリリークは、小さなアップデートで直ることがよくあります。
  3. システム設定 › 一般 › ログイン項目と機能拡張でログイン時に起動するものを確認し、不要なものを削除します。
  4. 普通に作業しながら 1 時間、アクティビティモニタのメモリ列を見て、着実に増えていくプロセスを探します。
  5. ディスクの空き容量を確認します。空きが約 10% を下回ると、スワップが苦しくなり、ダイアログがより早く出ます。

大きな動画の書き出しや大きなビルドなど、重い作業のたびに起こるなら、その作業が Mac のメモリ以上を必要としています。その作業中はほかをすべて閉じるか、作業を小さく分けてください。

Levo ならこうします

Levo のメモリ上限は、このダイアログが出る前に警告します。プレッシャーが、決めた時間だけ Warning か Critical のままだと通知が届き、ポップオーバーの Processes リストには、何がメモリを抱えているかがすでに表示されています。各行には、数時間使われていないビルドデーモンなど、あなた自身の AI エージェントの判断と Quit ボタンが付いています。

Free memory を押すと、エージェントが安全と判断したものを終了します。自分で 1 つだけ終了することもできます。プロセスが終了しないときは、Levo が終了を依頼したあとに ⌥⌘Q が強制終了します。Levo は、WindowServer、Finder、Dock などのシステムプロセスは終了せず、スワップは macOS に任せます。詳細はヘルプ記事にあります。

よくある質問

「システムのアプリケーションメモリが不足しています」とはどういう意味ですか?

メモリとスワップの両方がいっぱいで、macOS がこれ以上どのアプリにも割り当てられない状態です。メモリを一番使っているアプリを一覧表示するので、1 つを強制終了できます。

作業は失われますか?

未保存の変更があるアプリを強制終了すると、失われます。多くのアプリは自動保存するので確認してください。まだ操作できるほかのアプリは、終了する前に保存してください。

開いているアプリが少ないのに、なぜ起きたのですか?

そのうちのどれかがメモリをリークしているか、ヘルパープロセスがウインドウに表示される以上のメモリを抱えている可能性があります。アクティビティモニタをメモリ順に並べて探してください。

ディスクが満杯だと、これが起こりますか?

はい。スワップファイルは SSD にあるので、ディスクがほぼ満杯だと macOS がスワップする余地がなく、メッセージがずっと早く出ます。

このメッセージのあとは再起動したほうがいいですか?

そのあと Mac が遅いなら、再起動してください。リークとたまったスワップが消えます。大きなアプリを 1 つ終了して完全に回復したなら、そのまま使い続けて大丈夫です。

使っていないアプリがダイアログに表示されるのはなぜですか?

使っているかどうかではなく、保持しているメモリの量で並んでいるからです。バックグラウンドや待機中のアプリもカウントされるので、不要なものは終了してください。