Mojave 醉人心弦的内存管理.

2019-07-12 16:04:05 +08:00
 nobidagu

可用内存还有很多,但是就是开始使用 swap 虚拟内存了.
然后一点一点一点加



最后


BOOM!


我.............

4974 次点击
所在节点    MacBook Pro
18 条回复
luckyrayyy
2019-07-12 16:51:44 +08:00
27G 是什么操作....的确经常看到内存还有不少剩余就开始用 swp 的操作,我也很费解这样有什么好处..

但是 27G 是真的没见过
tyhunter
2019-07-12 17:02:39 +08:00
你这是有程序内存溢出了吧,打开活动监视器看看
wgh666
2019-07-12 17:14:02 +08:00
我被网易 mumu 搞过一次,报警才知道,90 多 G 的硬盘空间差点就写完了
yulgang
2019-07-12 17:28:48 +08:00
Remote Desktop Manager 出现过一次
longbow23a
2019-07-12 18:22:46 +08:00
@wgh666 同被 mumu 搞过,心疼 SSD
nobidagu
2019-07-12 18:34:05 +08:00
@tyhunter 应该是,我这边看到是 jetbrains rider 给吃的,软件关掉了也没释放掉,只能重启.
MrUser
2019-07-12 18:41:17 +08:00
这是 top 吗?
nobidagu
2019-07-12 18:56:00 +08:00
@luckyrayyy 就因为这个我还特意关掉了 swap,但是更加麻烦的是,管理 swap 后,经常在内存只用了 6-7G 的情况下弹出内存不足,要关闭应用程序窗口,如果不管,过一阵子,有些软件就会自动崩掉,所以我不得已又打开了 swap,然后出现了上面那一幕.
nobidagu
2019-07-12 18:56:28 +08:00
@MrUser htop
di11wei
2019-07-12 18:58:41 +08:00
我觉得是有程序的问题吧。有时候内存足够也会用交换文件。但是什么原理真的不知道
nobidagu
2019-07-12 18:59:47 +08:00
我记得 10.13 以下的版本不会有这样的问题,那时候内存经常用到 13 个 G 以上,也没有 swap,现在这系统不知道 Apple 工程师又做了什么鬼操作在里头.
lscho
2019-07-12 19:13:18 +08:00
@wgh666 同被 mumu 坑过,磁盘写满了
also24
2019-07-12 19:19:43 +08:00
经常遇到类似情况



nobidagu
2019-07-12 21:09:54 +08:00
@di11wei 程序内存肯定是泄露了,只是 mac 这内存管理策略我也是瞧不懂了.
shn7798
2019-07-13 00:08:49 +08:00
可以切换内存管理模式。
经本人测试当 vm_compressor=2 的时候,系统不到万不得已是不会产生 swap 的
设置命令(需要关闭 csrutil,或者 Recovery 模式操作):
sudo nvram boot-args="vm_compressor=2"


这个是 vm_pageout.h 中模式的定义:


```#define VM_PAGER_DEFAULT 0x1 /* Use default pager. */
#define VM_PAGER_COMPRESSOR_NO_SWAP 0x2 /* In-core compressor only. */
#define VM_PAGER_COMPRESSOR_WITH_SWAP 0x4 /* In-core compressor + swap backend. */
#define VM_PAGER_FREEZER_DEFAULT 0x8 /* Freezer backed by default pager.*/
#define VM_PAGER_FREEZER_COMPRESSOR_NO_SWAP 0x10 /* Freezer backed by in-core compressor only i.e. frozen data remain in-core compressed.*/
#define VM_PAGER_FREEZER_COMPRESSOR_WITH_SWAP 0x20 /* Freezer backed by in-core compressor with swap support too.*/
```


参考链接: https://apple.stackexchange.com/questions/118839/vm-compressor-mode-vm-compressor-mode-values-for-enabled-compressed-memory-in/138671
nobidagu
2019-07-18 11:23:06 +08:00
@shn7798 是有一些效果的,swap 基本在 1G 不会动,但是内存使用率还是上不了 9G(我 16G 内存),而且一段时间使用后,机器会变得巨卡,不得已,还是换回去了.
shn7798
2019-07-18 22:19:59 +08:00
@nobidagu #16 可能我是 32G 的关系。。。不过你那个情况估计内存已经吃紧了吧
ispinfx
2019-09-28 20:35:40 +08:00
32G 表示经常上不到 20G !

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/582412

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX