Mac OS Xで、再起動せずにスワップを解放する方法

Mac を使っていて、だんだん動きがもっさりしてきたなー*1と思って /private/var/vm/ 下を見ると、案の定スワップファイルが溜まっていることがある。

こういうケースでの対策としては、・スワップ禁止にする、・/usr/sbin/purgeする、・再起動する、といった手があるけど、スワップ禁止にするのは本当にメモリ不足になる可能性を考えると怖いし、purgeはスワップアウトしたデータを回収してくれないので効果は一時的だし、再起動はめんどい。

そんな場合は、処理が落ち着いたタイミングで以下のようにして、スワップ実メモリに書き戻せばよい*2スワップファイルも全部消える。

$ sudo launchctl unload /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
$ sudo launchctl load /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist

at own your risk でどうぞ。

*1:特にアンチウィルスソフトの定期スキャンが走ったりするとひどい

*2:linux の swapoff -a & swapon -a と同じ