V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hourann
V2EX  ›  问与答

swap 分区或文件开大了会有什么副作用吗?

  •  
  •   hourann · 2018-06-23 17:57:47 +08:00 · 3028 次点击
    这是一个创建于 2343 天前的主题,其中的信息可能已经有所发展或是发生改变。

    看网上有个分配 swap 大小的经验公式,大概就是小于 1G 内存分配两倍内存容量,1G 到 2G 分配 1.5 倍内存容量之类的。

    我照着这个方子开了 1.5G 的 swap,编译个软件就全爆了。想知道为什么会有这种经验公式?仅仅因为 swap 分配过大可能会造成浪费还是会有其他的副作用?

    14 条回复    2018-06-24 04:34:23 +08:00
    Nitroethane
        1
    Nitroethane  
       2018-06-23 18:11:18 +08:00 via Android
    没什么副作用啊。话说你这爆了的原因是因为你的内存太小了吧。
    GGGG430
        2
    GGGG430  
       2018-06-23 18:12:47 +08:00 via iPhone
    编译软件出错你就把错误信息贴出来,交换空间不背这个锅
    hahasong
        3
    hahasong  
       2018-06-23 18:13:34 +08:00 via iPhone
    现在一般不需要 swap 了,开的 vps swap 分区都是 0
    GGGG430
        4
    GGGG430  
       2018-06-23 18:15:32 +08:00 via iPhone
    @hahasong 你肯定没有用过挂起或休眠
    Love4Taylor
        5
    Love4Taylor  
       2018-06-23 18:55:09 +08:00
    副作用 ummm 大概就是多占用点空间吧, 我自己是在能用 zram 解决的情况下不会去创建 swap
    march1993
        6
    march1993  
       2018-06-23 18:56:31 +08:00
    编译 C++ 吧? 我一个 g++ 进程要 4G 左右的内存空间,建议装低版本系统
    hahasong
        7
    hahasong  
       2018-06-23 18:59:02 +08:00 via iPhone
    @GGGG430 vps 只有开机一种状态,一年都关不了几次,照这么说 swap 跟 win 下 hiberxxx 文件一样作用
    zn
        8
    zn  
       2018-06-23 19:01:16 +08:00
    这个教训告诉我们,SWAP 分区不要开太大,因为开太大了会费磁盘空间。
    liwufan
        9
    liwufan  
       2018-06-23 19:17:33 +08:00 via iPhone
    内存不够加内存,磁盘不够加硬盘。swap 是用来救急不是常驻的。话说 swap 反过来,我有时候看着内存空余太多还喜欢把 tar 包下载到 /tmpfs 里面临时当内存盘用
    thedrwu
        10
    thedrwu  
       2018-06-23 19:24:45 +08:00 via Android
    换个省内存的 linker。

    1G 机器还是别用来编译了。别的地方(交叉)编译好了扔上去。

    如上所说,swap 只是用来急救。
    睡眠到 RAM 不需要 swap。现在 ssd 和 systemd 启动够快,几乎没休眠过。
    Tuuure
        11
    Tuuure  
       2018-06-23 19:33:04 +08:00 via Android
    开大了浪费,没有副作用。还有强烈建议你加内存
    hourann
        12
    hourann  
    OP
       2018-06-23 19:57:01 +08:00
    @GGGG430 没有错误信息,就是进度卡在那里,,
    hourann
        13
    hourann  
    OP
       2018-06-23 20:02:58 +08:00
    @Tuuure 这是 50 块钱捡的电子垃圾,3g 上网本,拿来玩玩,懒得升级了
    msg7086
        14
    msg7086  
       2018-06-24 04:34:23 +08:00   ❤️ 1
    Swap 经验公式是针对某一种特殊情况而制定的,那就是你的内存正好适合你的使用环境。
    比如你开着 GUI 编译程序需要 4G 内存,那么插 4G 内存,开 6G Swap,这样有 10G 的余量可以满足你的正常使用。
    不是说你开着 1G 内存要跑 4G 的使用量只需要分 1.5G Swap 就够了。

    你这种明显要开 4G-6G 的 Swap 才够用好么。

    Swap 可关闭也有前提的,那就是你的内存完全超过正常使用量。
    比如你日常使用 10G 内存,配了 32G,那就可以把 Swap 关掉。
    反正连内核的 Overcommit 都可以算在这 22G 余量里,不需要 Swap 辅助了。

    日常用 10G 而只配了 16G 的,我都建议开 2-4G 的 Swap,应对 Overcommit。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5716 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 01:42 · PVG 09:42 · LAX 17:42 · JFK 20:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.