スリ飯屋MaLankaのフリーエンジニアな日々

このブログでは、フリーランスエンジニアとしての実体験から、フリーランスエンジニアに関するノウハウ、ブログや沖縄移住、スリランカの最新情報について発信します。

【2026年】MacのBraveでスワップが57GBに。メモリセーバーが効かない真相をbrave://discards/で解明した

※提携先広告(リンク、バナー等)やAI生成文を含む場合があります
  • Braveのメモリセーバーは「最大」設定でも効かないタブが多数ある。理由はbrave://discards/のView Reasonで確認できる
  • スワップのリセットには再起動が必要。タブ整理+再起動で57GBのスワップが完全に解消した
  • Cursor拡張機能と常駐アプリも要因。3段階の対処でアプリメモリを17.5GB → 12.7GBに削減した

先日、MacBook Air M5(32GB)を使っていたらアクティビティモニタのスワップ使用量が57GBという異常な数値になっていました。物理メモリの1.8倍のスワップ。Macが悲鳴を上げている状態です。

32GBあってもそんなことになるんですか?

なります。しかも「Braveのメモリセーバーはちゃんと最大設定にしてあるのに」という状態で。

結果的に2時間かけて原因を特定し、3段階で解決しました。この記事はその記録です。brave://discards/ というBrave内蔵ページの使い方が特に役立ったので、同じ問題で悩んでいる方に向けて詳しく残しておきます。

スワップ57GB。32GBのMacで何が起きていたか

M5 Air(32GB)でBraveブラウザのスワップが57.36GB(物理メモリの1.8倍)・圧縮6.42GB・使用済みメモリ28.65GBという異常状態に陥りました。メモリプレッシャーグラフは緑のままでも、実際は圧縮とスワップで凌いでいる詰みかけの状態。M1 Maxからの乗換からわずか1ヶ月でこの状態に到達しました(2026年5月時点)。

アクティビティモニタ スワップ57.36GB 圧縮6.42GBの異常状態
使用済みメモリ28.65GB / スワップ57.36GB / 圧縮6.42GB という異常値

アクティビティモニタを開いて目に入った数値がこれです。

  • 使用済みメモリ: 28.65 GB(物理32GBのほぼ限界)
  • スワップ使用領域: 57.36 GB
  • 圧縮: 6.42 GB

スワップとはメモリが不足したときにSSD上に作られる仮想メモリのことです。物理メモリの1.8倍のスワップが積み上がっており、Macがずっとメモリを圧縮・スワップしながら無理やり動かしている状態でした。

メモリプレッシャーグラフは緑でしたが、これは「今は余裕がある」ではなく、「圧縮とスワップで凌いでいる」という状態です。

マシンはM5 Air(32GB)。2026年3月にM1 Maxから乗り換えたばかりで、わずか1ヶ月でこうなりました。
M1 Maxのときは問題なかったんですか?
なかったんです。同じ32GBでも、M1 Maxはメモリ帯域が約400GB/sあってファン付き。M5 Airは約153GB/sでファンレス。「容量」が同じでも、処理余裕度がかなり違います。

この「同じ32GBでも挙動が違う」という点は後で詳しく説明します。

犯人はBrave。でもメモリセーバーは最大設定済みだった

アクティビティモニタ降順表示でBrave Browser Helper(Renderer)が画面を埋め尽くし、最大1.90GB含む合計16GB超を消費。アプリメモリ17.53GBのほぼ全部がBrave関連でした。Braveのメモリセーバーは既に「最大」設定済み・除外リストも空で、設定の問題ではない構造的問題です(2026年5月時点)。

アクティビティモニタ Brave Browser Helper が大量に並ぶ
Brave関連プロセスだけで16GB超を消費

アクティビティモニタをメモリ降順でソートすると、Brave Browser Helper (Renderer) が画面を埋め尽くしています。最大1.90GBのRendererが1個、1.14GB、1.01GBと並び、合計すると16GB超がBrave関連プロセスに使われていました。

アプリメモリ17.53GBのほぼ全部がBrave。犯人は明確です。

Braveのメモリセーバー設定が最大になっている状態
設定は「最大」なのにメモリが解放されない

ただしBraveのメモリセーバーは既に「最大」に設定済みでした。「常にアクティブにするサイト」の除外リストも空。設定の問題ではありません。

設定してあるのになぜ解放されないんですか?
「最大」設定にしても、Braveが「技術的にDiscardできない」と判断したタブは解放されません。その理由を確認できるデバッグページがあります。

brave://discards/ で真相を解明した

brave://discards/はBrave内蔵デバッグページで、全タブの「Auto Discardable(ユーザー側ON/OFF)」「Is Discardable(技術的破棄可否)」「Lifecycle State(loaded/frozen/discarded)」を確認できます。「最大」設定はAuto DiscardableをON化するだけで、Is Discardable✕のタブは解放されません(2026年5月時点)。

Braveには brave://discards/ というデバッグページがあります。全タブの状態を一覧で確認でき、「なぜそのタブが解放されないか」の理由まで調べられます。

Is Discardable = ✕ の衝撃とは?

brave discards ほぼ全タブの Is Discardable が不可
メモリセーバー「最大」でも全タブがDiscard不可

ページを開いて衝撃を受けました。ほぼ全タブの「Is Discardable」が ✕(不可) です。

このページで確認できる状態は3つあります。

  • Auto Discardable: ユーザー側のスイッチ(自動破棄を許可するかどうか)
  • Is Discardable: Brave側の判定(技術的に破棄できる状態かどうか)
  • Lifecycle State: 現在の実状態(loaded / frozen / discarded)

「最大」設定はAuto Discardableを全タブONにするだけです。Is Discardableが✕のタブは、設定に関係なく解放されません。

また、frozenは「一時停止状態」でメモリ削減効果は限定的です。本当に効くのはdiscarded(完全アンロード)状態だけです。

View Reasonで判明した「ピン留め以外の除外理由」は?

最初の仮説は「ピン留めタブが原因」でした。20個近いピン留めタブがあったので。ところがView Reasonで確認すると、ピン留め以外の要因が大量に出てきます。

ViewReason Googleスプレッドシートの除外理由
バックグラウンドでfaviconやタイトルを更新し続けるためDiscardされない

Googleスプレッドシートのタブ(frozenにしかなれていないもの)のView Reasonを見ると、このような理由が表示されていました。

  • Tab is updating favicon or title in the background
  • The user has edited the tab's content

スプレッドシートはバックグラウンドでも定期的に保存処理が走るため、構造的にDiscardされません。

ViewReason Google Driveは4つの除外理由が複合している
recently visible / was pinned / form interactions / edited の4要因が重なる

Google Driveのタブは4つの除外理由が複合していました。メモリセーバーが効かない主な除外理由はこれだけあります。

  • Tab was pinned — ピン留め
  • Notification permission is granted — 通知許可(Gmail / Slack等)
  • Tab is updating favicon or title in the background — バックグラウンド更新(Googleサービス全般)
  • Tab has form interactions — フォーム操作中
  • The user has edited the tab's content — 内容を編集した
  • Tab is recently visible — 最近表示したばかり
Googleサービス(Gmail / Drive / Calendar / Docs / Sheets)やnoteは、ピン留めを外しても他の要因で結局Discardされません。これが今回の一番大きな発見でした。
じゃあピン留めは外さなくていいんですか?
通知が来るタブ(Gmail / Slack / Calendar等)は外しても無意味です。ただ「開いておきたいだけ」のSNSやAmazonのタブは、ピン留め解除すれば実際にDiscard対象になります。

ピン留めの判断基準として「通知が来るタブ = ピン留めOK / ただ開いておきたいだけ = ブックマーク」という整理が一番現実的です。

第1段階:Urgent Discard + Mac再起動

brave://discards/上部の「Urgent discard a tab now」連打でスプレッドシート7個・Claudeタブ複数・Upstash・note等13個のタブをunloaded化。Mac再起動でスワップ57GB→0バイト・圧縮6.42GB→0バイト・使用済みメモリ28.65GB→14.43GB・アプリメモリ17.53GB→10.70GBに完全回復。macOSはSIPの関係で再起動以外にスワップを消す手段がありません(2026年5月時点)。

Urgent Discard連打で強制解放

Urgent Discard連打後 13タブがunloaded状態に
「Urgent discard a tab now」連打で13個のタブを強制破棄

brave://discards/ のページ上部に「Urgent discard a tab now」というボタンがあります。これを連打すると、優先度の低いタブから順番に強制的にDiscardされていきます。

スプレッドシート7個、Claudeタブ複数、Upstash、note等が次々unloaded状態に。合計13個のタブを強制破棄しました。

Mac再起動でスワップを完全リセット?

強制Discardでアプリメモリは減りますが、スワップはMac再起動でしかリセットできません

Linuxには swapoff -a に相当するコマンドがありますが、macOSはSIP(System Integrity Protection)の関係で安全に実行できる手段がありません。再起動が唯一の現実解です。

Mac再起動後 スワップ0バイト 圧縮0バイト アプリメモリ10.70GB
スワップ57GB → 0バイト。完全回復

再起動後の数値です。

項目 Before After
使用済みメモリ 28.65 GB 14.43 GB
アプリメモリ 17.53 GB 10.70 GB
圧縮 6.42 GB 0 バイト
スワップ 57.36 GB 0 バイト
キャッシュされたファイル 3.33 GB 14.78 GB

完全回復です。キャッシュされたファイルが増えているのは、空きメモリを有効活用している正常な状態なので問題ありません。

第2段階:不要常駐アプリを削減してベースラインを下げる

OneDrive削除(200〜500MB+バックグラウンド同期処理ゼロ)、iMovie削除(常駐202MB)、Apple Intelligence無効化(常駐MLモデル数GB削減・Siriも同時無効)の3対処でベースライン消費が2.5〜5GB削減できる見込みです。ログイン項目は5〜7個以内が目安で、自分は6個で適正でした(2026年5月時点)。

ブラウザを整理しただけでは、ベースラインの消費が高いままだとすぐ再発します。次は常駐アプリの棚卸しです。

Apple IntelligenceとSiriを無効化した設定画面
未使用の常駐MLモデルを無効化

対処したのは3つです。

OneDrive(削除) : Google Driveに完全移行済みで不要。削除で200〜500MB+バックグラウンド同期処理がなくなります。

iMovie(削除) : 常駐で202MB消費していましたが、使っていませんでした。macOSの移行時に自動でインストールされていたものです。

Apple Intelligence(無効化) : macOS Tahoeから導入された機能ですが、自分は使っていません。常駐MLモデルが数GBを消費するため、使わないなら無効化が正解です。Siriも同時に無効化されます。

3つ合わせてベースライン消費が2.5〜5GB削減できる見込みです。

ログイン項目(システム設定 → 一般 → ログイン項目)も確認しましたが、自分は6個で適切な範囲でした。目安は5〜7個以内です。

第3段階:Cursor拡張機能の棚卸し(40 → 26個)

Cursor Helper(Plugin):extension-hostが複数プロセス合計713MB(Cursor関連で約1.4GB)を消費していました。cursor --list-extensions --show-versionsで40個を一覧化し、重複機能5個・Python関連5個(普段使わないため)・未使用テーマ4個の計14個を削除して40→26個に整理。extension-hostは300〜400MBに削減見込みです(2026年5月時点)。

アクティビティモニタ Cursor Helper extension-hostが713MB消費
Cursor拡張機能40個でextension-hostが膨れ上がっていた

アクティビティモニタをよく見ると、Cursor Helper (Plugin): extension-hostが複数プロセスで合計713MB消費していました。Cursor関連だけで約1.4GBです。

cursor --list-extensions --show-versions で一覧化すると40個。多すぎます。

削除した内訳はこちらです。

カテゴリ 削除数 内容
重複機能 5個 フォーマッター・パス補完・TODO管理等で重複していたもの
Python関連 5個 普段Pythonを使わないため
未使用テーマ 4個 使用中テーマを自動判定して不要なものを削除
合計 14個 40 → 26個

テーマ拡張機能の整理では、Claude Codeにsettings.jsonと各拡張のpackage.jsonを読ませて「使用中のテーマはどれか」を自動判定してもらいました。3テーマのローテーション中、拡張機能が必要なのはDracula At Nightのみと判明し、残り4個を削除。

「複数ファイルをまたぐ横断調査 → 削除候補リスト化」はClaude Codeが得意な領域です。ただし「勝手に削除しないこと、コマンド提示までで止めること」と明示するのが大事です。

www.malanka.org

extension-hostの消費は削減後に約300〜400MBになる見込みです。

Before / After:3段階の効果まとめ

整理後のアクティビティモニタ アプリメモリ12.69GB スワップ0バイト
3段階の対処後。スワップはゼロを維持

3段階すべての対処後の最終状態です。

項目 問題発生時 第1段階後 最終状態
使用済みメモリ 28.65 GB 14.43 GB 16.67 GB
アプリメモリ 17.53 GB 10.70 GB 12.69 GB
圧縮 6.42 GB 0 480 MB
スワップ 57.36 GB 0 0 バイト

BraveタスクマネージャでのタブごとのメモリUsage
Twitch 297MB(480p固定)、Claudeタブ 528MB(最重)

BraveのタスクマネージャはShift+Escで開きます。タブ単位のメモリ確認ができます。整理後はTwitchが297MB(画質を480pに変えた効果)、Claudeタブが528MB(最重量)という状態でした。

Twitch見ながら作業しているんですか?
BGMがわりに流していました。画質を自動(最大1080p60fps)から480pに落としたら297MBになりました。動画タブは画質設定でメモリ消費が数倍変わります。

同じ32GBでもM5 AirとM1 Maxで挙動が違う理由

M1 Max(2021〜2026年3月)とM5 Air(2026年3月〜)はどちらも32GB容量ですが、メモリ帯域が約400GB/s→約153GB/s(約4割)、ファンあり→ファンレス、macOS Sonoma→Tahoeと処理余裕度が大きく異なります。Tahoeはベースライン消費が増加傾向で、M5 Airの軽快さで無意識にタブを増やすと容量だけで判断したパターンが破綻しがちです(2026年5月時点)。

M1 Max(2021〜2026年3月)では同じタブ運用でも問題が起きなかったのに、M5 Air(2026年3月以降)で1ヶ月で破綻した理由を整理します。

M1 MaxとM5 Airの主な違いはこちらです。

項目 M1 Max M5 Air
メモリ帯域 約400 GB/s 約153 GB/s
冷却 ファンあり ファンレス
macOS Sonoma Tahoe

メモリ帯域が約4割(400GB/s → 153GB/s)になったことで、圧縮・スワップ処理の余裕度が大幅に下がります。またTahoeはSonomaよりベースライン消費が増加していると感じました。

M5 Airは軽快なので「まだまだいける」と思って無意識にタブを増やしてしまうのも罠です。物理メモリ容量だけで判断せず、帯域・ファン有無・OSバージョンも考慮する必要があります。

よくある質問(FAQ)

Q. MacでBraveのスワップが異常に大きい原因は何ですか?

  1. メモリセーバー「最大」設定でも、ピン留め以外の構造的要因(通知許可・バックグラウンド更新・フォーム操作・編集済み・最近表示)でDiscardされないタブが多いことが主因です。brave://discards/のView Reasonで個別タブの除外理由を確認できます。

Q. Braveのメモリセーバーが効かないのはなぜですか?

  1. 「最大」設定はAuto Discardableを全タブONにするだけで、Is Discardableが✕のタブは設定に関係なく解放されません。Googleサービス(Gmail/Drive/Calendar/Docs/Sheets)やnoteは構造上Discardされにくい代表例です。

Q. macOSでスワップを手動でクリアできますか?

  1. macOSはSIP(System Integrity Protection)の関係で、Linuxのswapoff -aに相当するコマンドが安全に実行できません。スワップを完全リセットするにはMac再起動が唯一の現実解です。

Q. ピン留めタブはすべて外すべきですか?

  1. 通知が来るタブ(Gmail/Slack/Calendar等)はピン留めを外しても他の要因でDiscardされないため無意味です。一方、開いておきたいだけのSNSやAmazonタブはピン留め解除でDiscard対象になります。判断基準は「通知が来る=ピン留めOK・開いておきたいだけ=ブックマーク」です。

Q. 同じ32GBのMacでもM5 AirとM1 Maxで挙動が違うのはなぜですか?

  1. メモリ帯域がM1 Max約400GB/s→M5 Air約153GB/sと約4割に低下、ファン付き→ファンレスで圧縮・スワップ処理の余裕度が下がります。さらにmacOS Sonoma→Tahoeでベースライン消費が増加傾向のため、容量が同じでも処理余裕度に大きな差が出ます。

まとめ

M5 Air(32GB)でBraveのスワップが57GBになった原因と対処をまとめます。

第1段階(タブ整理 + 再起動) : アプリメモリ17.5GB → 10.7GB。スワップ・圧縮を完全解消。

第2段階(不要常駐アプリ削減) : OneDrive・iMovie削除、Apple Intelligence無効化でベースライン2〜5GB削減。

第3段階(Cursor拡張機能 40 → 26個) : extension-host 713MB → 300〜400MB見込み。

今回の一番の収穫は「メモリセーバー設定だけでは解決しない」という事実と、その理由を brave://discards/ のView Reason で画面として確認できることです。

同じ症状で困っている方はまずbrave://discards/を開いて、View Reasonで自分のタブが「なぜDiscardされていないか」を確認してみてください。「ピン留めが原因だろう」という直感が外れるケースがほとんどのはずです。