写在前面
什么是Swap?
为什么要关闭Swap?
使用Swap会导致硬盘的大量读写并降低其寿命,且Swap的速度远小于RAM,会导致日常使用中莫名其妙的卡顿,我遇到的就有卡死的启动台/卡死的台前调度/出不来的截图
但调度算法并没有我们想象中的聪明,在某些实际上不需要使用到Swap的场景下OS会使用Swap,这里选择暴力关闭Swap☠️
大家可以根据自己的使用情况来考虑关闭Swap
教程基于MBA M1演示
一、有关SIP
进入恢复模式
-
确保 Mac 已关机,按住
电源按钮直到出现正在载入启动选项后松开 -
点击选项——继续
-
选择一个管理员并输入密码继续
-
shift+command+T/在左上角实用工具中打开终端
关闭SIP
|
|
根据终端提示输入y和管理员密码,等待SIP的关闭后,运行
|
|
重启到正常系统
二、关闭Swap
在启动台——其他内找到终端/command+空格搜索终端并打开
检查当前vm.compressor_mode
运行
|
|
查看返回值
1:不压缩内存且不启用
2:压缩内存但不启用
3:不压缩内存但启用
4:压缩内存并启用
默认情况应当返回4我们希望将其修改为模式2
修改vm.compressor_mode
-
此前未进行过类似操作
直接运行:
1sudo nvram boot-args="vm_compressor=2" -
此前可能修改过
boot-args先运行:
1nvram -p查看
boot-args后将已有的
boot-args添加至命令中并运行,例:1sudo nvram boot-args="vm_compressor=2 serverperfmode=1"
删除SwapFile
运行
|
|
重启并检查vm.compressor_mode
运行
|
|
重启后打开终端运行
|
|
预期返回值为2,即成功关闭Swap
三、重新打开部分SIP
根据前面所写的办法进入恢复模式并打开终端
运行
|
|
根据终端提示输入y和管理员密码,等待SIP的开启后,运行
|
|
重启到正常系统 大功告成!
注意:
这里--without nvram参数只是开启了部分SIP,因为在我的测试环境下,开启全部的SIP会导致boot-args设置失效,大家可以自行去除参数测试
四、重新打开Swap
根据前面所写的方法关闭SIP,修改vm.compressor_mode为4,即重新打开Swap
|
|
最后记得重新打开完整SIP
|
|