macOS Sierra でスワップを無効化した手順のメモ。
macOS Sierra では System Integrity Protection (SIP) でシステムファイルが保護されているので、リカバリモードで起動して、SIP を無効化後にスワップ(Pagerデーモンの自動起動)を無効化し、SIP を元に戻した。
手順
リカバリモードで起動して SIP を無効化する
- OSを再起動する
- OS起動時に Command + R を押し続ける(ログイン画面になる前)
- 「主に日本語を使用する」を選択する
- 画面上部のメニューの [ユーティリティ]-[ターミナル] を選択する
- SIP を無効化する
-bash-3.2# csrutil disable Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effetc.
スワップを無効化する
$ sudo launchctl list|grep dynamic_pager - 0 com.apple.dynamic_pager ★ Pager デーモンの自動起動が有効 $ sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist $ sudo launchctl list|grep dynamic_pager $ ★Pager デーモンの自動起動が無効になっている
補足
$ vm_stat Mach Virtual Memory Statistics: (page size of 4096 bytes) Pages free: 1617968. Pages active: 1123098. Pages inactive: 295638. Pages speculative: 683934. Pages throttled: 0. Pages wired down: 473140. Pages purgeable: 245419. "Translation faults": 10275868. Pages copy-on-write: 429818. Pages zero filled: 3576699. Pages reactivated: 4653. Pages purged: 133. File-backed pages: 1064238. Anonymous pages: 1038432. Pages stored in compressor: 0. Pages occupied by compressor: 0. Decompressions: 0. Compressions: 0. Pageins: 373701. Pageouts: 0. ★ Swapins: 0. Swapouts: 0.
- pcom.apple.dynamic_pager.plist の内容は以下の通り。
$ sudo cat /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>EnableTransactions</key> <true/> <key>Label</key> <string>com.apple.dynamic_pager</string> <key>KeepAlive</key> <dict> <key>SuccessfulExit</key> <false/> </dict> <key>POSIXSpawnType</key> <string>Interactive</string> <key>ProgramArguments</key> <array> <string>/sbin/dynamic_pager</string> <string>-F</string> <string>/private/var/vm/swapfile</string> </array> </dict> </plist>
参考
- Mac のシステム整合性保護について - Apple サポート
- ASCII.jp:知ってトクするOS Xのコマンド(1) (2/2)|Apple Geeks
- How to disable swapping in sierra? : MacOS
- Mirror of wiki.summercode.com
- https://www.macworld.com/article/2986118/security/how-to-modify-system-integrity-protection-in-el-capitan.html
- Mac OS X El CapiptanでSIPを無効化する - Qiita
- LaunchDaemons (launchctl, launchd.plist) の使い方 - maruko2 Note.
- USE Method: Mac OS X Performance Checklist