Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
raawaa
V2EX  ›  Linux

没有 swap 的副作用?

  •  
  •   raawaa ·
    raawaa · May 13, 2018 · 10633 views
    This topic created in 3105 days ago, the information mentioned may be changed or developed.
    系统偶尔会出现内存和 CPU 跑满的情况,系统响应变得非常慢,基本上像死机状态。

    莫非和我没有 swap 有关?

    吓死了,赶紧去加了一个 swap file
    Supplement 1  ·  May 17, 2018
    增加了 swap file 之后果然情况改善了。
    之前只要内存跑满直接死机,鼠标键盘全部没有响应。加了 swap 之后,内存跑满也能操作鼠标键盘,只是有间歇卡顿而已。
    top 了一下。发现是 firefox 在捣蛋……这玩意儿会内存泄漏?还是说哪个插件的锅……

    看来 swap 还是不能少。
    34 replies  •  2018-06-09 11:05:58 +08:00
    wonpain
    wonpain
    May 13, 2018 via Android
    1
    还是内存不够大
    vegito2002
    vegito2002
    May 13, 2018
    2
    加 swap 不如加内存
    summerwar
    summerwar
    May 13, 2018
    3
    加内存 加 cpu
    fangxing204
    fangxing204
    May 13, 2018 via Android
    4
    是的,我以为 8g 内存差不多了,所以装系统就没分 swap,结果发现打开太多东西经常卡死,楼上说的都对,但是,我穷,选择连加个 swapfile,明显不会出现卡死的情况了。可以参考这里 https://askubuntu.com/a/796997/649754
    Nitroethane
    Nitroethane
    May 14, 2018 via Android
    5
    没有 swap 以及 swap 太小的话没办法休眠的吧
    iir910
    iir910
    May 14, 2018
    6
    这年头,4G 是入门,8G 是凑合.16G 才够用.
    要不是现在的内存价格死贵,我早就买 16G 了.
    innoink
    innoink
    May 14, 2018 via Android
    7
    8g 内存一般不会占满吧,除非某些 bug 内存泄露之类的
    mmqc
    mmqc
    May 14, 2018 via Android
    8
    我目前机器 8g 机器上跑:网易云,chrome,telegram,golddict,medeley 内存占用大概 3.3g 没跑 ide,写代码用 vim。就这样,开了 mariadb 偶尔也会出现假死现象。。。对了,我分的 swap 是 16g。。。不知道啥情况
    msg7086
    msg7086
    May 14, 2018❤️5
    9
    对于内核来说,软件的内存使用量分两种,一种是占用的量,比如申请内存以后在里面存放了数据就属于占用;另一种是申请的量,比如申请内存以后没有写入数据。

    其中的申请量是检测虚拟内存是否足够的依据。比如在 Windows 下,你有 8G 物理内存和 4G 分页文件,那么申请量最大不能超过 12G,超过了内核就会开始杀进程。Linux 下有 Overcommit 机制,可以让你适当多申请一些内存,超过物理内存和交换区的总和,但是这也是有上限的。低价 VPS 上开 MySQL 经常被杀进程就是因为 MySQL 申请量超过了 Overcommit 的上限。

    有钱可以加物理内存,没钱的话还是加 Swap 比较好,对于申请且没有使用的内存部分,分页到 Swap 是不会影响性能的。
    19tj
    19tj
    May 14, 2018 via Android
    10
    楼上大神,真∵夜猫
    loading
    loading
    May 14, 2018 via iPhone
    11
    free 命令,了解一下。
    iwtbauh
    iwtbauh
    May 14, 2018 via Android
    12
    @fangxing204 别加 swap 文件,想办法加 swap 分区。前者要多很多性能损失。
    iwtbauh
    iwtbauh
    May 14, 2018 via Android
    13
    副作用是有的,会多很多磁盘 I/O,而且硬盘速度肯定是不如物理内存的。但是如果内存确实不够是应该加的。

    “偶尔会出现内存和 CPU 跑满”,top 命令看看是什么东西吃内存和 CPU
    love4taylor
    love4taylor
    May 14, 2018 via Android
    14
    如果 CPU 余量很足的话 就上 zram/zswap 吧
    yu099
    yu099
    May 14, 2018 via Android
    15
    @19tj 别人在美国吧
    ZackB0T
    ZackB0T
    May 14, 2018 via Android
    16
    vm.swappiness,了解下
    ccsexyz
    ccsexyz
    May 14, 2018
    17
    如果是服务器的话,是不应该开 swap 的
    liuminghao233
    liuminghao233
    May 14, 2018 via iPhone
    18
    没 swap 内存一爆直接 kill 进程
    开了有 swap 就算是用 ssd,内存占用大了一样卡
    raawaa
    raawaa
    OP
    May 14, 2018
    19
    @iwtbauh 爆满的时候电脑没响应了,连 top 指令都没法输入。
    snail1988
    snail1988
    May 14, 2018
    20
    现在 16G 是入门 32G 标配。。。不上 swap 起码 16G
    iwtbauh
    iwtbauh
    May 14, 2018 via Android
    21
    @raawaa 那你确定是内存满了的原因?内存用超会 oom kill,我怀疑你这可能是死机了。PC 机 Linux 死机的话,九成是 N 卡问题,尝试禁用 N 卡
    tempdban
    tempdban
    May 14, 2018 via Android
    22
    这年头咋还有人说服务器不要开 swap
    zhusimaji
    zhusimaji
    May 14, 2018 via iPhone
    23
    @ccsexyz 服务器一定要开的,23333
    msg7086
    msg7086
    May 14, 2018
    24
    @ccsexyz 服务器不开 swap 可以,但是内存要多插很多。
    4G 物理+2G Swap 能勉强跑起的程序,不开 Swap 至少要插 8G 到 12G 内存才不会被杀掉。
    有钱当然可以为所欲为。我要是能插上 256G 内存,我也不开 Swap。
    tatsuteng
    tatsuteng
    May 14, 2018 via iPhone
    25
    说不要开 swap 的,https://chrisdown.name/2018/01/02/in-defence-of-swap.html 了解一下?
    carakan
    carakan
    May 14, 2018
    26
    8G 日常爆内存...16g 不开虚拟机够用吧..32G 可以...

    现在有什么性价比搞的电脑能上 32G 内存啊啊
    raawaa
    raawaa
    OP
    May 14, 2018 via Android
    27
    @iwtbauh 内存和 CPU 同时爆满。
    跟显卡应该没有关系。我开机以后做家里的视频服务器的。平时就跑跑 BT 下载和 samba 服务。
    跑着跑着不去动他,非常偶尔会死机。
    wayne1027
    wayne1027
    May 14, 2018
    28
    昨天给 512M RAM 128M SWAP 的 VPS 编译 GCC 死活编译不过,把 swap 改成 512M 就好了…说到底还是 RAM 太少了
    ccsexyz
    ccsexyz
    May 14, 2018
    29
    @msg7086 我见过的内存最小的服务器是 32G 的
    msg7086
    msg7086
    May 14, 2018
    30
    @ccsexyz 我们一般用的 512M 或者 1G 的。
    tempdban
    tempdban
    May 15, 2018 via Android
    31
    @msg7086 我们实验室环境常年 256g 加 swap
    并且这么大的内存一般都要用巨页管理,业务内存页是不会换到硬盘上的。
    GLee9507
    GLee9507
    May 28, 2018
    32
    archlinux+i3wm 不用 swap 的话内存快满了就会卡死,鼠标都动不了。挂载个 swapfile 就没出现过卡死-。-
    raawaa
    raawaa
    OP
    May 28, 2018
    33
    @GLee9507 #32 的确,我也是 Arch + i3
    qbqbqbqb
    qbqbqbqb
    Jun 9, 2018
    34
    @iwtbauh swap 文件不会有太多性能损失的,Linux 挂载 swap 文件默认不是以 loopback device 的形式,而是越过文件系统直接读写(因此 swap 文件创建的时候也必须用 dd 命令创建连续文件,否则 swapon 会失败)
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1981 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 80ms · UTC 15:28 · PVG 23:28 · LAX 07:28 · JFK 10:28
    ♥ Do have faith in what you're doing.