V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
IfEles
V2EX  ›  macOS

64g 内存需要关闭 swap 分区吗?

  •  
  •   IfEles · 2021-11-05 16:04:25 +08:00 · 7405 次点击
    这是一个创建于 1118 天前的主题,其中的信息可能已经有所发展或是发生改变。

    物理内存闲置,swap 却一直占用 Iu1BEq.png Iu168U.png

    27 条回复    2021-11-08 14:21:01 +08:00
    kilala2020
        1
    kilala2020  
       2021-11-05 16:46:25 +08:00   ❤️ 2
    系统预测你会长时间不用,就把数据调入 swap ,修改 swap 的价值只存在于你内存有富余,使用的又是机械硬盘的情况,现在折腾这个,所能节省载入的时间,都还没有我打这段话时间多。
    algas
        2
    algas  
       2021-11-05 16:56:00 +08:00
    可能会有笔记本电量过低,无法休眠的风险。
    lopssh
        3
    lopssh  
       2021-11-05 17:23:57 +08:00
    哇,你是怎么使用 42G 内存的?
    vanton
        4
    vanton  
       2021-11-05 17:26:30 +08:00
    不需要关闭,你不差这点硬盘,增加的性能完全没有意义,只会增加风险。
    Leonard
        5
    Leonard  
       2021-11-05 17:27:58 +08:00
    @kilala2020 #1 可能不是想节省载入时间,而是想延长 SSD 寿命?毕竟之前 M1 之前有 swap 导致 SSD 大量写入的问题
    tulongtou
        6
    tulongtou  
       2021-11-05 17:32:57 +08:00 via iPhone
    求求你告诉我怎么关闭 swap
    gakkiismywife1
        7
    gakkiismywife1  
       2021-11-05 18:05:42 +08:00
    这个是什么 app
    wanacry
        8
    wanacry  
       2021-11-05 19:27:41 +08:00 via iPhone
    求求被告知如何关闭 mac 的 swap 我搜了一爆都没找到方法
    wanacry
        9
    wanacry  
       2021-11-05 19:29:03 +08:00 via iPhone
    因为我用 16g 的 mac 笔记本 一旦有几 g 以上的 swap 就能感觉到整个系统的响应明显变慢
    CraxClive
        10
    CraxClive  
       2021-11-05 19:29:22 +08:00 via iPhone
    @wanacry 进安全模式关呀,google 一搜就搜出来了
    Cavolo
        11
    Cavolo  
       2021-11-05 20:24:41 +08:00 via iPhone
    都说了这是给你载入星球大战母舰模型时使用的🐶
    frinstioAKL
        12
    frinstioAKL  
       2021-11-05 23:44:42 +08:00   ❤️ 1
    macOS 默认情况下无论内存多大多少会使用一点 swap. 64G 我觉得其实可以关 swap 了, 我这边 32G 关了用了两年都没事. 不过每个人的使用情况不同, 可以关了体验一段时间看看.

    关闭 swap 的方法有两步:

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

    这个网上大部分都有, 但是我发现我的 mac mini 执行后还是会使用 swap. 调研后发现还有个 vm 策略的调整, 因此需要执行第二步:

    (2) sudo nvram boot-args="vm_compressor=2"

    原理参考: https://ayltai.medium.com/need-for-speed-how-to-squeeze-every-last-drop-out-of-macos-sierra-7ac17b680c98

    最后重启即可
    dingwen07
        13
    dingwen07  
       2021-11-06 01:08:28 +08:00 via iPhone
    @frinstioAKL #12 这得关闭 SIP 吧
    dingwen07
        14
    dingwen07  
       2021-11-06 01:09:20 +08:00 via iPhone
    对了,听说 ARM Mac 关闭 SIP 后 iOS App 就跑不起来了
    jeeyong
        15
    jeeyong  
       2021-11-06 03:34:55 +08:00
    @Leonard 过量写入的问题好像是因为数据读取错误造成的显示错误, 而不是真的过量写吧?
    之前看的英文说明, 模模糊糊
    IfEles
        16
    IfEles  
    OP
       2021-11-06 09:28:10 +08:00
    @algas 我这个是 imac,感觉休眠不休眠也无所谓
    IfEles
        17
    IfEles  
    OP
       2021-11-06 09:28:54 +08:00
    @lopssh 我一般就看他内存压力的,这个我没注意,就开了几个 ide 的窗口
    IfEles
        18
    IfEles  
    OP
       2021-11-06 09:29:21 +08:00
    @vanton 恩恩,想想还是算了
    IfEles
        19
    IfEles  
    OP
       2021-11-06 09:29:53 +08:00
    @gakkiismywife1 istat menus
    IfEles
        20
    IfEles  
    OP
       2021-11-06 09:30:16 +08:00
    @tulongtou 进安全模式可以用命令行关闭的,不过我也还没试过
    IfEles
        21
    IfEles  
    OP
       2021-11-06 09:52:15 +08:00
    昨天吧 idea 的内存拉到了 4g,暂时没有出现虚拟内存占用
    tulongtou
        22
    tulongtou  
       2021-11-06 10:49:56 +08:00
    @frinstioAKL 老兄自己试过么?
    tulongtou
        23
    tulongtou  
       2021-11-06 10:51:43 +08:00
    @IfEles 我之前用 Intel 的 MacBook Pro ,只要睡眠必定出现 swap 占用,也是 64G 的内存,不存在内存不够用的情况
    ekidona
        24
    ekidona  
       2021-11-07 10:16:09 +08:00 via iPhone
    1.5T RAM 都要留 Swap 呢
    f64by
        25
    f64by  
       2021-11-07 23:12:55 +08:00
    Apple Silicon 上默认不读取自定义的 boot-args ,需要修改安全策略
    bputil -a
    但是这样会导致安全等级降低到 Permissive Security ,无法运行任何 iOS app 及解密 FairPlay DRM 内容
    所以使用 boot-args="vm_compressor=2"关闭 swap 的代价就是放弃在 Mac 上运行 iOS app
    podel
        26
    podel  
       2021-11-08 11:32:25 +08:00
    不需要关闭 swap 。
    ram 在不使用的时候 会被用来当做 磁盘的缓存。磁盘再快也没有内存块。这样使用几乎没有读写的内存区域来缓存频繁读写文件。没有关闭 swap 让垃圾留在内存中要好。
    kilala2020
        27
    kilala2020  
       2021-11-08 14:21:01 +08:00
    @Leonard 哦,这个倒是一个可行的办法,之前那个超量写入,估计是 bug 吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4089 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 10:18 · PVG 18:18 · LAX 02:18 · JFK 05:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.