Mac OS X Swap File Optimization
So I like OS X. It’s a UNIX desktop done well, it’s well designed, beautiful and easy to use.
With all I love about OS X, there are things that I absolutely HATE. They could, for example, use the Unix Filesystem Hierarchy (https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard) but this article is more about how there is no easy way to modify your swap file and it’s usage.
I understand the desire to keep these kinds of settings under the covers from users who may be in experienced or not know exactly what they’re doing, but they could make it a little simpler to get your hands on.
Nevertheless, it’s not impossible. During my research, I came upon this guys site (http://osxdaily.com/2010/10/08/mac-virtual-memory-swap/) and with this info (read it, it’s short) you can re-mount your swap files on a new filesystem.
In OS X, swap files are stored at /private/var/vm, so that’s where we’ll concentrate our filesystem changes.
First things first, though, we have to disable the swap files. Thankfully, this can be done from the command prompt, but before you do disable virtual memory, you should not be running any applications. If possible disable all network services, and close all programs before releasing all virtual memory, if you leave programs, (especially swapped, unfocused or background ones) open, you may have problems, otherwise consider yourself warned.
Disable “Dynamic Pager” (swap):
Mac-Mini:~ root# launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
After this command is done, you can safely delete everything in the /private/var/vm/ directory.
Mac-Mini:~ root# rm /private/var/vm/*
Then simply mount your new filesystem. Mine is “msdos”, I figured that having less overhead would make it slightly quicker. Though a security remember: these files would be readable by perhaps the wrong people, and could be used for malicious reasons or for information gathering purposes (ex. http://www.linuxjournal.com/content/doing-reverse-hex-dump).
Mac-Mini:~ root# mount -t msdos /dev/disk1s1 /private/var/vm
Then you can re-enable dynamic pager (swap, virtual memory), don’t forget the “-wF” the F probably means “force”:
Mac-Mini:~ root# launchctl load -wF /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
There you have it, your swap file will grow on this partition.
Please remember that you have to be root to run these, if you are unable to become root, please consult the manual pages for “sudo” on OS X.