ガイド/Claude Codeのメモリ使用量が多すぎる
MacでClaude Codeのメモリ・CPU使用量が多すぎる? 見つけ方と取り戻し方
結論
Claude Codeは、claudeという名前のプロセスとしてターミナルで動き、作業中にほかのプロセスを起動します。MCPサーバ、サブエージェント、そして作業の確認に使う開発サーバやテストの実行です。重くなる理由は2つあります。何時間も動いているセッションは、メモリとCPUの使用量が増えることがあります。終了してclaude --resumeで再開すれば元に戻ります。そして、起動したプロセスがセッションの終了後も動き続けることがあります。アクティビティモニタでclaude、node、mcpを検索して見つけましょう。Mac用システムモニタのVitalsなら、各プロジェクトフォルダで動いているすべてのプロセスを一覧にするので、セッションが残したものがひと目でわかります。
Claude Codeが何を使っているかを見つける方法
- 01 アクティビティモニタを開いて“メモリ”をクリックし、検索フィールドに“claude”と入力します。実行中のセッションがそれぞれ1行で表示されます。数ギガバイトを使っている行や、何も頼んでいないのに忙しい行が、再起動すべきセッションです。
- 02 “表示” → “すべてのプロセス(階層表示)”を選びます。ターミナルアプリの横の三角形を開くと、各セッションと、その下にセッションが起動したすべてのものが表示されます。
- 03 重いセッションを再起動します。Control-Cを2回押して終了し、同じフォルダで
claude --resumeを実行して会話を選びます。止めたところから続きます。 - 04 検索フィールドを空にして、“mcp”、次に“node”を検索します。Claude Codeのセッションをすべて閉じてもまだ残っている行は、残されたプロセスです。
- 05 ターミナルでは、
ps -axo pid,ppid,rss,etime,command | grep -i mcpでそれらを親とともに一覧表示できます。親が1なら、そのプロセスを起動したセッションはもうありません。killのあとに番号を付けて停止します。
Claude Codeでは、/mcpで、セッションが起動するMCPサーバを一覧表示できます。それぞれが独立したプロセスです。使わないものは削除しましょう。
Claude Codeはコマンドラインプログラムなので、自分のウインドウもDockの項目もありません。その負荷は、ターミナルアプリか、ターミナルを使っているエディタの下に表示されます。また、ほかのプログラムを起動するプログラムでもあります。MCPサーバもサブエージェントもそれぞれ1つのプロセスで、テストを実行したり開発サーバを起動したりすれば、それもプロセスです。Claude Codeのせいだと思われているメモリのほとんどは、Claude Codeが起動したものが使っています。下の表で、どれがどれかを整理します。
Claude CodeのメモリとCPUの使い道
| 見えているもの | 概要 | すること |
|---|---|---|
claudeが数GBを使っている | 何時間も開いたままのセッション | 終了してclaude --resumeを実行する |
claudeがアイドル中も忙しい | 同じ原因: 長いセッションは遅くなる | セッションを再起動し、Claude Codeをアップデートする |
多数のnodeプロセス | MCPサーバ。セッションごと、サーバごとに1つ | /mcpで使わないサーバを削除する |
| すべてのセッションを閉じたあとに残るプロセス | 止まらなかったMCPサーバ、サブエージェント、ヘッドレスブラウザ | 親が1のものを見つけて終了する |
next-server、テストランナー、ビルドのCPU使用率が高い | Claude Codeが作業の確認のために起動したもの | 停止するか、Claude Codeに停止を頼む |
長いセッションは大きくなる
セッションは、会話全体、読んだすべてのファイル、すべてのコマンドの出力を保持します。何時間も続くと積み重なり、Claude Codeのイシュートラッカーには、何ギガバイトにも達したセッションや、アイドル中もCPUコアを1つ使い続けたセッションの報告があります。どの報告でも対処法は同じで、セッションを終了して再開することです。会話は随時保存されるので、claude --resumeで何も失わずに、新しいプロセスから始められます。
Claude Codeを最新に保つことは、ほかの多くのツールより重要です。頻繁にリリースされ、メモリの問題もバージョンごとに修正されています。claude updateでアップデートできます。
セッションが残していくもの
セッションが終わると、起動したプロセスも一緒に終わるはずです。しかし、いつもそうなるとは限りません。MCPサーバ、サブエージェント、ヘッドレスブラウザが親を失ったまま動き続け、誰も使っていないのにメモリを抱え続けることがあります。これについて書いたある開発者は、1日の作業のあとに、そうしたプロセスが37個、合わせて6 GB以上を抱えているのを確認しました。
一度見れば簡単に見分けられます。ターミナルがなく、親が1で、開始時刻が何時間も前です。終了しても問題ありません。厳密には、ゾンビプロセスは別のものです。すでに終了していて、メモリを使いません。ここでゾンビと呼ばれているものは孤児プロセスで、生きていてメモリを抱えています。
開発サーバ、テスト、ビルド
作業を確認するために、Claude Codeは開発サーバを起動したり、テストを実行したり、プロジェクトをビルドしたりします。バックグラウンドで起動した開発サーバは、タスクが終わっても動き続け、何も止めなければセッションを閉じたあとも動き続けます。2つか3つのプロジェクトにそれぞれ忘れられた開発サーバがあるというのは、メモリに余裕があるはずのMacでメモリが足りなくなるよくある理由です。
セッションを終える前に、起動したものを停止するようClaude Codeに頼むか、どのポートが待ち受けられているかを確認します。使っていないポートのサーバは、誰も使っていないサーバです。
複数のセッションを同時に使うとき
タスクごとやブランチごとにエージェントを並行して動かすと、上のすべてが倍になります。セッションごとに、メモリ、すべてのMCPサーバのコピー、開発サーバがあります。16 GBのMacでは、余裕があるか、メモリプレッシャーが黄色になるかの分かれ目です。終わったセッションは閉じ、サーバには別々のポートを割り当てて、2つ目がひそかに失敗して再試行を繰り返さないようにしましょう。
Vitalsでできること
Vitalsは、どのウインドウにも属さないプロセスも含めて、各プロジェクトの負荷を表示します。
- “プロジェクト”タブ: プロジェクトフォルダで動いているすべてのプロセスを、どのターミナルやエディタが起動したかにかかわらず、プロジェクト全体のメモリ、CPU、エネルギーとともに表示
- 各プロジェクトが待ち受けているポート。アイドル状態で動いたままの開発サーバを知らせ、停止するかどうかを尋ねます
- Claude Codeはアップデートをまたいで1つのツールとして集計されるので、1日のメモリの推移が1本の線になります
- アプリのメモリ使用量が増え続けたときや、CPUを何分も使い続けたときに通知
- メニューバーからどのアプリも“終了”可能。確認してから終了します
知っておくと便利なこと
- Vitalsが表示するのは、プロセスとその使用量です。Claude Codeの会話を読んだり、セッションが何に取り組んでいるかを把握したりはしません。
- Vitalsが勝手に何かを終了することはありません。
よくある質問
Claude Codeのメモリ使用量が多いのはなぜ?
何時間も開いたままのセッションは大きくなります。また、セッションが起動するMCPサーバ、サブエージェント、開発サーバは、それぞれ独立したプロセスです。セッションを終了してclaude --resumeを実行すれば、新しいプロセスで続けられます。
Claude Codeを再起動すると会話は失われる?
失われません。会話は随時保存されます。同じフォルダでclaude --resumeを実行し、続けたい会話を選びます。
Claude Codeを使うとnodeプロセスがたくさんあるのはなぜ?
ほとんどはMCPサーバです。各サーバは、セッションごとに独立したプロセスとして動きます。Claude Codeでは、/mcpでどのサーバが設定されているかがわかります。
Claude Codeが動かしたままにしたプロセスを見つけるには?
すべてのセッションを閉じてから、アクティビティモニタでmcpとnodeを検索します。ターミナルでは、ps -axo pid,ppid,rss,commandで各プロセスの親がわかります。親が1なら、残されたプロセスです。
残ったMCPサーバのプロセスを終了しても大丈夫?
はい。Claude Codeのセッションが1つも開いていなければ大丈夫です。セッションは、次に実行したときに必要なサーバをもう一度起動します。
Claude Codeにはどれくらいのメモリが必要?
新しいセッションが使うのは数百メガバイトです。残りは、MCPサーバ、開発サーバ、テストの実行など、何を起動するかで決まります。複数のセッションを並行して動かすと、そのすべてが倍になります。
MacでClaude Codeが何を動かしているかがわかるアプリはある?
Vitalsの“プロジェクト”タブは、各プロジェクトフォルダで動いているすべてのプロセスを、メモリ、CPU、ポートとともに一覧にし、アイドル状態のままの開発サーバを知らせます。
用語集
ほかのガイド
- Macが遅い原因
- Macのバッテリーを消耗させているもの
- CPUやメモリを使っているアプリ
- Macがスリープしない原因
- Chromeのメモリ使用量が多すぎる
- Macのファンがうるさい原因
- Macのファン速度を制御する方法
- MacでRAMを解放する方法
- Dockerのメモリ使用量が多すぎる
- Dockerコンテナを停止する方法
- Mac用の音量ミキサー
- CursorのCPU使用率が高い
- ClaudeアプリのCPU使用率が高い
- CodexのCPU使用率が高い
- Ollamaのメモリ使用量が多すぎる
- アクティビティモニタの代替アプリ
- iStat Menusの代替アプリ
- Statsの代替アプリ
- Mac用のタスク マネージャー
- Mac向けシステムモニタのおすすめ
- Mac向けメニューバー型モニタのおすすめ
- Mac向け音量ミキサーのおすすめ