
2026/01/21 16:48
はい、macOS のディスクフットプリントを削減する方法は複数あります。以下に代表的な手順を挙げます。 - **使用していない言語パックを削除** ```bash sudo rm -rf /Library/AppleLanguages/ ``` (または、サードパーティ製のツールを利用する方法もあります) - **古いシステムログやキャッシュを消去** ```bash sudo rm -rf ~/Library/Logs/* sudo rm -rf /private/var/log/* ``` - **不要なバンドルアプリケーションをアンインストール** アプリをゴミ箱へドラッグするか、次のコマンドで削除します。 ```bash sudo rm -rf /Applications/<App>.app ``` - **Xcode の派生データとシミュレータをクリア** ```bash rm -rf ~/Library/Developer/Xcode/DerivedData/ xcrun simctl delete unavailable ``` - **サードパーティのクリーンアップユーティリティを利用**(例:CleanMyMac、Onyx) 使用する際は慎重に設定を確認してください。 - **必要最小限の macOS コンポーネントだけを残す** サーバーやコンテナ向けに極力軽量化したい場合は、**macOS Server** を利用するか、`pkgbuild`/`productbuild` でカスタムイメージを構築するとよいでしょう。 大規模な削除を行う前には必ずバックアップを取ってください。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
概要:
記事は、macOS が多くのバックグラウンドプロセスを実行し続けること(アプリケーションが開いていない場合でも)を説明しており、その中で特に Time Machine に関連するものが目立つと述べています。Mac は 700 を超えるプロセスを走らせることができ、削除候補約 500 種類を特定するには約十人年の調査が必要となり、手作業での選別は非実用的です。
Time Machine のとbackupdは、多くのユーザーが代替バックアップソリューションを好むため、低いハンギングフルーツとして取り上げられています。Time Machine が無効化されていても、これらのプロセスはアクティビティモニタに表示され、約 5 MB の RAM とわずかな CPU を消費します。これらを起動するランチデーモン(backupd-helper、com.apple.backupd-helper.plist)は Signed System Volume (SSV) に配置されており、不変です。com.apple.backupd.plist
macOS Sierra 以降では、スケジューリングは単純な launchd タイマーの代わりに Duet Activity Scheduler (DAS) と Centralised Task Scheduling (CTS) が XPC 経由で行われます。DAS は起動後5分以内にをディスパッチしないよう最初に回避し、Time Machine が無効でも毎時実行をスケジュールします。このサイクル全体は約 0.144 秒で、ほとんどリソースを消費しません。ユーザーは System Settings や defaults を通じてこの自動スケジューリングを停止できず、DAS‑CTS はユーザーコントロールから独立しています。com.apple.backupd-auto
記事は、これらのバックグラウンドタスクが Unix の純粋主義者にとって無駄に見えるかもしれないものの、消費者向け便利性を実現する macOS の設計上不可欠であることを結論付けています。閉じた SSV アーキテクチャは、古いモジュラー Mac OS バージョンと比べてユーザー選択肢を制限しています。
本文
アクティビティモニタを開いて、Macがあまり作業していないときに数百ものプロセスが表示されることをご存知でしょうか。仮想マシンで最低限のサービスしか動かさなくても少なくとも500個、オープンしているアプリが一切無い純粋なMacなら700個を超える場合もあります。WindowServer のように必須と考えられるものは確かに存在しますが、残りの多くを削除できるのでしょうか? これは私に繰り返し投げかけられる質問であり、本記事ではその答えを探ります。
「不要なプロセス」を見つける最初の課題は、それぞれが何をしているのか、またどのように相互関係しているのかを把握することです。Apple の誰もがすべてを知っているわけではなく、あるプロセスが何を行うかを調査するには時間と労力が必要です。もし 500 個の候補をそれぞれ平均で一週間調査すると仮定したなら、10 人年以上も要しますが、その間にすべてが変わってしまいます。常に変化し続ける 500 のターゲットを研究することは実際的ではありません。
問題が複雑になると「チート」して低いハンギングフルーツから手をつけるのが最善です。そこで私は Time Machine のバックアップに関わるよく知られたプロセス群を選びました。macOS Sierra 以降ずっと追跡し、ログで頻繁に調査してきました。Time Machine を使用しない人も多く、その代替手段を使うケースが増えているため、
backupd やその関連プロセスを削除したいという合理的な理由は十分あります。また、他のサブシステムに Time Machine が必須とされるケースはほぼ無いため、比較的単独で排除できる可能性があります。
macOS 26.2 の基本的な VM を構築し、Time Machine を有効化していない状態でもアクティビティモニタにプロセスが表示されます。
backupdbackupd-helper
Time Machine が完全に無効化されているにも関わらず、CPU 使用率は少し、メモリ使用量は合計 5.1 MB 程度です。小さな数字ですが、500 個のプロセスに積み上げると注意すべき要素になります。
これら二つのプロセスは
/System/Library/LaunchDaemons にあるプロパティリスト com.apple.backupd-helper.plist と com.apple.backupd.plist で制御されます。最初の問題は、Signed System Volume (SSV) 内に配置されているため、これらを変更できない点です。同様に、残りの 417 個の LaunchDaemons や 460 個の LaunchAgents はほぼすべて SSV にあり、古い macOS の頃であればプロパティリストを編集して起動を抑制できましたが、現行版では不可能です。
backupd-auto を停止できないなら、別の方法でブロックできるでしょうか? その答えは、スケジューリングとディスパッチの仕組みを理解する必要があります。
macOS Sierra 以前は Time Machine のバックアップは launchd によってタイムドイベントとして実行されていました。以降は Duet Activity Scheduler (DAS) と Centralised Task Scheduling (CTS) が協力して、軽量な XPC 通信でスケジューリングとディスパッチを行います。DAS は
com.apple.backupd-auto を含む膨大なアクティビティリストを管理し、いつ CTS に渡すかを判断します。例えば Mac の起動直後の 5 分間は他プロセスに優先権を与えるため、実行を遅らせます。
その時間が経過すると DAS はバックアップ実行を決定します:
38.738 DAS 0:com.apple.backupd-auto:2052A3, Decision: CP Score: 0.949374 38.738 DAS '0:com.apple.backupd-auto:2052A3' CurrentScore: 0.949374, ThresholdScore: 0.068531 DecisionToRun:1 38.762 DAS REQUESTING START: 0:com.apple.backupd-auto:2052A3
次に CTS が XPC を介してディスパッチします:
38.762 CTS-XPC DAS told us to run com.apple.backupd-auto (0xb671bcc80) 38.844 CTS-XPC Initiating: com.apple.backupd-auto (0xb671bcc80) 38.846 CTS-XPC _xpc_activity_dispatch: beginning dispatch, activity name com.apple.backupd-auto, seqno 0 38.846 CTS-XPC _xpc_activity_begin_running: com.apple.backupd-auto (0x7a9014280) seqno: 0. 38.878 CTS-XPC Running (PID 537): com.apple.backupd-auto (0xb671bcc80)
この VM では Time Machine が無効化されているため、Time Machine は次のように報告します:
38.879 Time Machine Skipping scheduled Time Machine backup: Automatic backups disabled
しかし
com.apple.backupd-auto は完了し、CTS‑XPC を通じて状態が戻ります:
38.879 CTS-XPC _xpc_activity_set_state: send new state to CTS: com.apple.backupd-auto (0x7a9014280), 5 38.880 CTS-XPC Completed: com.apple.backupd-auto (0xb671bcc80)
次回の実行は DAS が少なくとも30分後、理想的には1時間後にスケジュールします:
38.881 CTS-XPC Rescheduling: com.apple.backupd-auto (0xb671bcc80) 38.881 DAS SUBMITTING: 0:com.apple.backupd-auto:B293AE 38.882 DAS Submitted: 0:com.apple.backupd-auto:B293AE at priority 30 with interval 1800 (Mon Jan 19 21:25:38 2026 - Mon Jan 19 21:40:43 2026)
したがって、VM で Time Machine を無効化しても DAS‑CTS は毎時間自動バックアップをスケジュールし続けます。ユーザーコントロールからは完全に切り離されているため、このスケジューリングとディスパッチを阻止する手段はありません。問題になるでしょうか? この一連の流れは 0.144 秒で完了し、軽量な XPC によってリソース消費はほぼゼロです。毎時間のみ繰り返されます。
Unix のピュア主義者にとっては無駄で不必要に思えるかもしれませんが、macOS は Unix ではありません。数百万のコンシューマーや一般ユーザー向けに設計されたクローズドソースのプロプライエタリ OS です。設定ファイルや数千のプロパティリストを直接操作する代わりに、ほとんどの制御は System Settings に公開され、一部は
defaults コマンドでしかアクセスできません。
昔の Mac OS はよりモジュラーで、ユーザーが任意のオプションを選択してインストールできました。macOS 9.1 の例ではそのような柔軟性が見られます。しかし SSV が導入された現在は、AI に使用される cryptexes や x86 コードトランスレータ Rosetta 2 の有無だけが主要な選択肢となり、後者は将来的に廃止される可能性があります。
好きかどうかに関わらず、現代の macOS はユーザーにプロセス選択の自由を与えるよう設計・実装されておらず、SSV や DAS‑CTS といったアーキテクチャ上の制約が、プロセスを大幅に削減することを妨げています。