为什么 Mac 即使内存充足,仍然会有交换内存占用? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
RiverTwilight
V2EX    macOS

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

  •  
  •   RiverTwilight 2023-07-29 23:17:34 +08:00 5855 次点击
    这是一个创建于 811 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    15 条回复    2023-08-11 15:06:11 +08:00
    longtzw
        1
    longtzw  
       2023-07-29 23:35:20 +08:00 via iPhone
    你是不是对充足有啥误解
    mineralsalt
        2
    mineralsalt  
       2023-07-29 23:41:26 +08:00
    你这已经内存不足了, 操作系统肯定要提前考虑啊, 你总不会认为把物理内存用到 1kb 都不剩的时候才使用虚拟内存吧
    mineralsalt
        3
    mineralsalt  
       2023-07-29 23:50:41 +08:00   1
    再补充一句吧, 不必杞人忧天, 虽然固态有写入寿命, 但是我用了这么多年, 从来没有把哪块硬盘写完了. 估计你也没有过. 网上见到的也很少, 大概率你的电脑被你淘汰了, 固态硬盘还活着呢! 正常用, 别瞎纠结
    wang93wei
        4
    wang93wei  
       2023-07-30 00:26:47 +08:00   1
    以下回答来自 CLAUDE:


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

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

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

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

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

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

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

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

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

    想要完全避免 SWAP ,我建议直接顶配。
    seanzxx
        5
    seanzxx  
       2023-07-30 02:27:58 +08:00   1
    你这个明显物理内存已经不足了呀。
    物理内存充足是这个样子的:
    cloud2000
        6
    cloud2000  
       2023-07-30 09:52:27 +08:00
    这是我的:

    deplivesb
        7
    deplivesb  
       2023-07-30 10:31:06 +08:00
    活动监视器-活动监视器-20230615-000053@2x
    这才叫充足,你这个已经不够了
    esrkforward
        8
    esrkforward  
       2023-07-30 11:21:02 +08:00 via iPhone
    @wang93wei 请问您是怎么让 CLAUDE 用简中回答的?
    RiverTwilight
        9
    RiverTwilight  
    OP
       2023-07-30 12:54:41 +08:00
    @seanzxx 好奇你楼下那位朋友为啥也很充足,但是还有 12.9MB 占用啊
    seanzxx
        10
    seanzxx  
       2023-07-30 13:59:06 +08:00   1
    @RiverTwilight 他的内存已经用得差不多了,因为能看到 Compressed 有 1GB 多了。
    macOS 管理内存三个步骤
    1. 优先分配物理内存
    2. 如果内存不够,尝试压缩不活跃的内容释放内存
    3. 如果还是不够,启用交换内存
    linshuangcom
        11
    linshuangcom  
       2023-07-30 15:14:44 +08:00
    可能是开了休眠模式吧,hibernatemode = 3 或 = 25 下,休眠后数据会存储在硬盘中
    wang93wei
        12
    wang93wei  
       2023-07-30 16:32:17 +08:00
    @esrkforward 说中文回的就是中文啊,,,
    agagega
        13
    agagega  
       2023-07-30 19:50:06 +08:00 via iPhone
    可能某个时刻内存占用峰值很高就会触发 swap ,等内存占用降下来以后,这些内存如果没有被活跃读写,就会继续留在 swap 里。在浏览器开了大量窗口的时候这种情况很常见
    secondwtq
        14
    secondwtq  
       2023-07-30 23:56:30 +08:00
    一般来说系统不会自动清除 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
        15
    beggarvip  
       2023-08-11 15:06:11 +08:00
    请先了解一下*nix 的内存机制
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2654 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 14:31 PVG 22:31 LAX 07:31 JFK 10:31
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86