不懂就问,为什么明明内存没有吃满,还会使用虚拟内存?

2021-01-07 16:14:19 +08:00
 movq

用虚拟内存不是损耗磁盘吗

5688 次点击
所在节点    macOS
17 条回复
movq
2021-01-07 16:15:33 +08:00
sm.ms 的图片最近好像加载比较慢
sadfQED2
2021-01-07 16:34:31 +08:00
操作系统觉得你这个数据很少使用,于是就会给你挪到虚拟内存,从而让物理内存更充足

Linux 下面可以调整虚拟内存的使用权重,mac 不知道有没有类似的
yulgang
2021-01-07 17:09:35 +08:00
如果 Mac 频繁的将内存写到虚拟内存,说明物理内存还是有点少,有条件就加内存,没有就无视吧。Mac 不想 Linux 可以调整 swappiness
Bolvvv
2021-01-07 18:27:26 +08:00
同样的情况,不知道是什么策略。
![image.png]( https://i.loli.net/2021/01/07/2qvT1QwJdXZipGb.png)
shyrock
2021-01-07 18:39:44 +08:00
反过来说,如果优先把物理内存用完,这时候有新任务开出来,是不是需要先释放一部分内存才能让新任务执行,这样感觉新任务的启动速度就很慢了。所以合理的做法是保留一些物理内存。
secondwtq
2021-01-07 20:32:35 +08:00
楼主不如给个 Activity Monitor 的截图 ... 因为我这没有新版 macOS,也没有 iStat Menus
根据网上的截图,macOS 的 Activity Monitor 把物理内存占用分成“已使用内存”和“已缓存文件”两部分,而“已使用内存”进一步被分为“应用内存”“联动内存”和“已压缩”三部分,所以楼主的实际物理内存占用是“应用内存”+“联动”+“已压缩”+“缓存”,which 差不多接近了 16GB 。
这个“活跃”就不知道是哪来的了 ...
secondwtq
2021-01-07 20:43:27 +08:00
查了下资料,好像 macOS 把某种内存又分为了“活跃”和“非活跃”两类,需要换出到交换区时应该会优先换出“非活跃”页。iStat Menus 里面的“实际可用”搞不好“实际”把“非活跃”给算进去了。
billlee
2021-01-07 22:27:21 +08:00
1. 系统觉得有些文件缓存更常用,所以选择优先把内存给这些缓存用
2. 之前内存压力大的时候,把部分数据写入了虚拟内存,现在压力降下来了,但没人去读那部分数据,系统就把它留在那里
zictos
2021-01-07 22:32:28 +08:00
内存不应该吃满,应该预留一些面对突发的大内存需求,不然你突然开启一个很占内存的程序就要卡死。不要听什么“内存是拿来用的,内存大就可以尽情使用”之类的话,适当可以,但不应该太过,必须尽量预留一点。
M1hahahaha
2021-01-07 22:35:48 +08:00
不用纠结这些,硬盘在那,不消耗它,它也没法给你创造好吃的,不如给你干的能干的事。
Apple 这项技术,10 年了吧,没有说因为这项技术让客户的硬盘损坏或者换电脑,在你换电脑时,他还能使劲的消耗个没完,经历比你旺盛。
Elethom
2021-01-07 22:51:15 +08:00
你 inactive 没显示。
Lemeng
2021-01-07 23:03:14 +08:00
预设,不用纠结
bojongle
2021-01-07 23:09:51 +08:00
就举个最简单的例子,你的操作系统只有 kernel 会在 ram 里,剩下的部分都在硬盘里。操作系统没学好啊你
typetraits
2021-01-08 09:47:21 +08:00
这是 macOS 的默认内存策略,pressure 大于 60%还是 65%时就会开始使用交换文件,可以使用 memory_pressure 命令测试一下
内存够大的话可以换种策略,但是不能完全禁用,进恢复模式的终端里执行 nvram boot-args="vm_compressor=2"

具体定义在 https://opensource.apple.com/source/xnu/xnu-7195.50.7.100.1/osfmk/vm/vm_pageout.h.auto.html
#define VM_PAGER_COMPRESSOR_NO_SWAP 0x2
#define VM_PAGER_COMPRESSOR_WITH_SWAP 0x4
louettagfh
2021-01-08 11:27:56 +08:00
你没有理解操作系统中什么是虚拟内存,什么是物理内存
l33ch
2021-01-08 16:46:33 +08:00
aneostart173
2021-01-09 09:58:17 +08:00
我觉得你想说的是 swap space 。

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

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

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

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

© 2021 V2EX