为什么要这样干?
直接看机器配置吧
就在写下这篇文章的当天,我的电脑已经连续一个月没关机了(忘记留 uptime 截图了),在当时我的内存占用大概是这样的。
因为当时直接想着加速电脑了,直接 sudo kill 1
了,忘记留截图了。
图源网络,侵删。
众所周知,Swap 是将磁盘虚拟为内存来用的,所以速度肯定比不上扎扎实实的内存的。这样一来,不管我操作啥,电脑都感觉卡卡的,就像我用了下我家 15 年前的那个戴尔本一样。而且以前早就有禁用 Swap 的想法了,这次就直接去实施了。
禁用 Swap
如果你的物理内存真的不够,禁用 Swap 可能会导致程序被内核 OOM(Out Of Memory) Kill 掉,甚至导致内核崩溃。请自行斟酌风险。
1.0 禁用 SIP
从 MacOS 10.11 开始,苹果就在 MacOS 里加上了 SIP(系统完整性保护 System Integrity Protection)这导致了要想修改系统文件就必须进入恢复模式去关闭 SIP,否则即使是 root 用户也只会返回 Operation not permitted
。所以,必须要关闭 SIP。
- 重新启动 Mac 并按住键盘上的
Command(⌘)+ R
。 - 系统可能会提示您输入密码,例如固件密码,或这台 Mac 的管理员用户的密码。请输入要求的密码以继续。
- 在实用程序菜单中,选择“终端”。
- 输入
csrutil disable
并回车 - 在菜单中,点击重新启动来重启电脑。
1.1 禁用 Swap
- 先使用
sysctl -a vm.compressor_mode
来检查现在的内存模式,默认的数字应该是4
。- 1 代表不压缩内存且不启用 swap。
- 2 代表压缩内存但不启用 swap。
- 3 代表不压缩内存但启动 swap。
- 4 代表着压缩内存并启用 swap。
- 输入
nvram boot-args="vm_compressor=2"
即可将内存管理模式更改为压缩内存但不启用 swap
1.2 启用 SIP
由于安全原因,这里建议重新启用 SIP。如果想要启用的话,直接在终端中输入 csrutil enable
即可。
禁用其他系统服务
1.0 禁用 mds_stores
mds
是 Spotlight的一部分。也就是你按 Command (⌘) + 空格
弹出来的那个东西。它为所有文件建立索引,以便在你要搜索文件的时候快速的找到你想要的东西。因为我的 Spotlight 已经完全被 Alfred 替代,所以可以禁用它以节省CPU和内存。
- 在终端中输入
sudo mdutil -a -i off
即可禁用索引。 - 若想恢复索引,需要在终端中输入
sudo mdutil -a -i on
。