建议配备M1芯片的Mac关闭虚拟内存(交换内存 swap memory)

为什么建议关闭?

本文转自 CSDN 技术社区博主 MartinKayJr 的文章

我是买的丐版 Mac M1 8+256 的。前几天听说 M1 有 SSD 磨损的问题。并且这个话题持续发酵。

我在了解之后,就把虚拟内存关掉了。但在我关闭后,打开电脑奇怪的发现虚拟内存还在使用,并且还是一直保持 2GB 左右,半个月不到就 2TB 了,我表示很慌。在第二天我打开电脑准备工作时,习惯性打开活动监视器(command + 空格),发现已使用的交换内存为 0 字节,我特别高兴。

但在我打开 3 个 idea 窗口时,分别运行了 1 个 Springboot 的项目和 2 个 node 项目时,习惯性查看活动监视器,发现又上升到了 2GB,也就是说,关闭虚拟内存和启动虚拟内存是不一样的效果。

  • 启动虚拟内存(默认):不管怎么样都会使用虚拟内存,除非你的内存特别大,目的是为了防止在突然打开一个超大的文件时,导致需要重新处理内存与虚拟内存。所以默认使用虚拟内存,尽量让出大部分物理内存。
  • 关闭虚拟内存(需要手动):默认不使用虚拟内存,但经过我观察,似乎是超过预警阀值(内存GB-2GB的样子)就会开始使用虚拟内存,我猜测目的是为了系统的稳定性

也就是说,即使关闭了虚拟内存,也不会影响系统稳定性,因为超过预警阀值又会继续使用虚拟内存。但关闭后就可以在没必要的情况下使用虚拟内存。其实效果也不是很好,因为我打开电脑一定就是打开idea搞开发,所以每天都还是会使用大量虚拟内存。

 

Mac M1如何关闭虚拟内存?

  • 关闭系统完整性保护机制
  • 关闭虚拟内存

首先关闭系统完整性保护需要进入recovery OS,Mac M1进入模式好像不太一样。就在电脑完全关机的情况下,一直按着电源键不放,提示你继续按着电源键就可以进入,然后直到提示你正在进入恢复模式就可以放手了。

选择用户输入密码后,左上角有一排的菜单,找到终端打开他,输入:

csrutil disable

我记得好像会提示什么权限转移吧,反正yes就可以了。

重启电脑后打开终端,输入:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist

然后就关闭了,使用这个指令可以查看虚拟内存使用情况:

sysctl vm.swapusage

到了这里你就关闭了虚拟内存,但注意,你之前关闭了系统完整性保护,我建议你重新开启,以免不必要的问题,重新进入recovery OS恢复模式,在终端输入:

csrutil enable

就可以了。

关闭虚拟内存不排除是否有风险,如果你每天都是低负载使用 Mac,关不关都无所谓的。如果你只是简单使用 Mac,如果内存一大半没用就被使用了虚拟内存,你就可以关闭掉虚拟内存。

 

笔者注

经过一段时间后,笔者终于从“村通网”的状态恢复,才得知 M1 有这个毛病,所幸笔者的 M1 是 16G 的机型,一查 swap 用量不算很多,比绝大多数网上贴出来的情况都要好,在执行了上述方法后,用量情况愈发降低,强烈建议 8GB 内存的 M1 持有用户执行上述操作,延缓硬盘磨损(毕竟硬盘没法自行更换)。

 

0. 本站所有资源解压密码均为 heipg.cn
1. 本站资源收集于网络,仅做学习和交流使用,请于下载后24小时内删除。如果你喜欢我们推荐的软件,请购买正版支持作者。
2. 如有无法下载的链接,联系:admin#heipg.cn,或到QQ群进行反馈,我们将及时进行处理。
3. 本站发布的内容若侵犯到您的权益,请联系站长删除,联系方式:admin#heipg.cn,我们将第一时间配合处理!

黑苹果星球 » 建议配备M1芯片的Mac关闭虚拟内存(交换内存 swap memory)

发表评论