为什么 Mac 即使内存充足,仍然会有交换内存占用?

285 天前
 RiverTwilight

如题,最开始买来的时候没有这种情况,半个月后发现交换内存日常有在使用,请问这是正常的吗?为什么?

(听说长期使用交换内存会加快硬盘损耗)

3348 次点击
所在节点    macOS
15 条回复
longtzw
285 天前
你是不是对充足有啥误解
mineralsalt
285 天前
你这已经内存不足了, 操作系统肯定要提前考虑啊, 你总不会认为把物理内存用到 1kb 都不剩的时候才使用虚拟内存吧
mineralsalt
285 天前
再补充一句吧, 不必杞人忧天, 虽然固态有写入寿命, 但是我用了这么多年, 从来没有把哪块硬盘写完了. 估计你也没有过. 网上见到的也很少, 大概率你的电脑被你淘汰了, 固态硬盘还活着呢! 正常用, 别瞎纠结
wang93wei
285 天前
以下回答来自 CLAUDE:


现代操作系统开启 SWAP 的主要原因有以下几点:

1. 补充物理内存不足。当物理内存使用量接近上限时,系统会将部分不常用的内存内容交换到 SWAP 区,腾出物理内存来运行新的程序或加载更多数据。

2. 支持内存过 commit 。应用程序可能会申请比实际所需更多的内存,SWAP 可以作为内存过 commit 的缓冲区,避免物理内存使用量超过系统实际容量。

3. 支持内存休眠。系统可以将长时间不用的内存页交换出去,腾出更多物理内存给活跃进程使用。当需要那些页时再从 SWAP 调入。

4. 进程虚拟地址空间更大。进程可以申请超过系统物理内存大小的虚拟地址空间,SWAP 可以把部分不用的页换出,使进程可以获得更大的可用虚拟内存空间。

5. 增加系统故障容错性。如果没有 SWAP,一旦物理内存用尽,系统就可能直接崩溃。有了 SWAP,可以缓解这种情况。

6. 支持内存压缩。系统可以使用压缩算法,将内存内容压缩后存放到 SWAP,在需要时再解压,这样可以增加系统的整体内存容量。

综上所述,SWAP 的作用是对物理内存进行扩充和优化,让系统可以灵活、高效地使用内存资源,这对现代操作系统来说是非常重要的。

------------------------------------------------------------

想要完全避免 SWAP ,我建议直接顶配。
seanzxx
285 天前
你这个明显物理内存已经不足了呀。
物理内存充足是这个样子的:
cloud2000
284 天前
这是我的:

deplivesb
284 天前
活动监视器-活动监视器-20230615-000053@2x
这才叫充足,你这个已经不够了
esrkforward
284 天前
@wang93wei 请问您是怎么让 CLAUDE 用简中回答的?
RiverTwilight
284 天前
@seanzxx 好奇你楼下那位朋友为啥也很充足,但是还有 12.9MB 占用啊
seanzxx
284 天前
@RiverTwilight 他的内存已经用得差不多了,因为能看到 Compressed 有 1GB 多了。
macOS 管理内存三个步骤
1. 优先分配物理内存
2. 如果内存不够,尝试压缩不活跃的内容释放内存
3. 如果还是不够,启用交换内存
linshuangcom
284 天前
可能是开了休眠模式吧,hibernatemode = 3 或 = 25 下,休眠后数据会存储在硬盘中
wang93wei
284 天前
@esrkforward 说中文回的就是中文啊,,,
agagega
284 天前
可能某个时刻内存占用峰值很高就会触发 swap ,等内存占用降下来以后,这些内存如果没有被活跃读写,就会继续留在 swap 里。在浏览器开了大量窗口的时候这种情况很常见
secondwtq
284 天前
一般来说系统不会自动清除 swap 和 cache 的内存,swap/compressed 页只有在读取的时候才会重新换到 RAM 里(或者被 free 掉了),cache 只有在 RAM 塞满之后才会 evict 。
不是说“有”swap 会加快损耗,是 swap 频繁换入换出会,就一点 swap 然后一直放在那不读跟没有没啥区别(当然你可以较真一开始不是写了几 MB 么 ...)
还有现在 PC 固态一般是主控比颗粒坏得快,但是果子这边 M 系的特色是主控做进 SoC 里了,所以理论上没有这个单点的问题。果子的问题是本身 RAM 起步太少加配又太贵。你换个 16GB RAM 的 PC 一样有 swap 的,现在光看 Mac 内存日经贴还以为 swap 是 M 系果子第一个发明的似的 ...
beggarvip
272 天前
请先了解一下*nix 的内存机制

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

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

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

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

© 2021 V2EX