关于 Linux 服务器的 swap 用量,大家所在的运维团队都是如何监控和优化的呢? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Livid
63.57D
457.16D
V2EX    DevOps

关于 Linux 服务器的 swap 用量,大家所在的运维团队都是如何监控和优化的呢?

  •  
  •   Livid
    PRO
    2014-11-27 16:29:38 +08:00 10593 次点击
    这是一个创建于 3980 天前的主题,其中的信息可能已经有所发展或是发生改变。
    35 条回复    2014-11-28 11:12:32 +08:00
    Sunyanzi
        1
    Sunyanzi  
       2014-11-27 16:39:52 +08:00   1
    SWAP 的用量应该恒为 0 ... 吃到就要报警了 ...
    EPr2hh6LADQWqRVH
        2
    EPr2hh6LADQWqRVH  
       2014-11-27 16:40:25 +08:00   1
    swap不是好东西,内存抖动还不如直接杀进程呢
    要内存不要swap
    hydrazt
        3
    hydrazt  
       2014-11-27 16:45:46 +08:00   1
    1. 加内存,加服务器
    2. 吃内存的服务修改配置
    halfbloodrock
        4
    halfbloodrock  
       2014-11-27 16:49:26 +08:00   4
    监控看用到一半就报警,同时监控下vmstat si so的数值

    优化swap本身倒是不多,基本上也就是跟着redhat的建议来。

    https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Guide/s-memory-tunables.html
    hydrazt
        5
    hydrazt  
       2014-11-27 16:49:46 +08:00   1
    zabbix 默认监控项里面就有swap的使用量监控
    cloudzhou
        6
    cloudzhou  
       2014-11-27 17:02:57 +08:00   1
    基本上,现在已经不推荐使用 swap 了,容易导致系统抖动,尤其在现在有大内存支持下。
    zts1993
        7
    zts1993  
       2014-11-27 17:03:36 +08:00
    加内存
    kkxxxxxxx
        8
    kkxxxxxxx  
       2014-11-27 17:32:34 +08:00
    512M小内存,不用swap不行啊,内存又加不起
    efi
        9
    efi  
       2014-11-27 17:48:38 +08:00 via Android
    无swap,oom随机杀进程,过一会发现数据库被杀了
    halczy
        10
    halczy  
       2014-11-27 17:53:04 +08:00   1
    除了用来备份/存文件/DEV那些机子之外, 其他的都不会用到SWAP.
    ab
        11
    ab  
       2014-11-27 17:54:46 +08:00   1
    同意1,2楼. 每次swap一动,负载马上飞天
    9hills
        12
    9hills  
       2014-11-27 17:56:49 +08:00
    关掉SWAP,用inittab保证sshd不死

    然后做好内存监控,内存超了就OOM吧
    efi
        13
    efi  
       2014-11-27 18:06:52 +08:00 via Android   1
    调内核参数vm.swappiness。为了避免oom杀掉数据库,内核特别把=0的语义改成=1,颇有争论。
    5thcat
        14
    5thcat  
       2014-11-27 18:15:04 +08:00   1
    "因为一般来说宁愿应用OOM挂掉也不愿意导致rt飙高,使得应用hang在那里的。" 引用自
    http://blog.hesey.net/2014/05/swap-impact-on-rt-sensitive-apps.html
    kofj
        15
    kofj  
       2014-11-27 18:19:38 +08:00
    @avastms 赞同,还是加内存吧
    efi
        16
    efi  
       2014-11-27 18:21:51 +08:00 via Android
    杀掉数据库比简单的挂掉要糟得多,你宁愿数据库停止然后去优雅关闭也不愿简单的杀掉。

    swappiness已经可以起到绝大多数时候避免swap的作用,但是你还是需要swap来处理极端情况。一个折中办法是使用zswap减少io。
    efi
        17
    efi  
       2014-11-27 18:24:28 +08:00 via Android
    应用内部可以还调用madvise通知内核避免swap。简单的取消swap其实是丢弃了一道防护。
    efi
        18
    efi  
       2014-11-27 18:27:13 +08:00 via Android
    总而言之linux的内存管理系统显然是有这方面特性满足实时应用的内存需求的。
    xtaoyumo
        19
    xtaoyumo  
       2014-11-27 18:28:04 +08:00
    关闭 swap
    Lax
        20
    Lax  
       2014-11-27 18:31:52 +08:00
    1 禁用
    /etc/sysctl.conf: vm.swappiness=0

    2
    /etc/sysctl.conf: vm.swappiness=1
    监控swap使用量,超过30%就报警。
    监控swap in/out。发现有交换就报警。
    typcn
        21
    typcn  
       2014-11-27 18:41:23 +08:00 via iPad
    我服务器上有好多程序基本不会运行到的数据文件也加载到内存中,开了减轻压力,只开了512m sw
    bobopu
        22
    bobopu  
       2014-11-27 19:05:05 +08:00 via iPhone
    我现在swap已经达到内存的50%系统抖动十分厉害,打算升级内核后开zswap
    jackzou
        23
    jackzou  
       2014-11-27 20:41:46 +08:00
    调内核参数vm.swappiness
    监控swap的值,非零就报警
    wxm4ever
        24
    wxm4ever  
       2014-11-27 20:44:32 +08:00
    在阿里云上搭gitlab.我宁愿开1g swap也不愿意多花钱升级内存~~~ - -
    mahone3297
        25
    mahone3297  
       2014-11-27 21:40:34 +08:00
    @jackzou
    @Lax
    请教,如何查看swap使用量?free -m?如何监控?
    billwang
        26
    billwang  
       2014-11-27 22:03:53 +08:00   1
    华三网管系统,监控cup、内存、进程、weblogic、oracle、ping告警等等,告警后直接报缺陷工单,短信提醒。
    uniudy
        27
    uniudy  
       2014-11-27 22:25:03 +08:00 via iPad
    尽可能关掉swap,宁愿挂掉也不能响应慢
    xwsoul
        28
    xwsoul  
       2014-11-27 22:32:53 +08:00
    用上swap 服务器就离躺不远了 很可能被接下来的一波带走
    msg7086
        29
    msg7086  
       2014-11-27 22:36:00 +08:00 via iPhone
    完全不明白为什么一排人说不能用swap。

    完全关闭swap会导致最主要的两个问题

    1 系统不能更合理地使用内存
    2 限制了virt内存的使用量
    oyjj
        30
    oyjj  
       2014-11-28 00:08:49 +08:00
    修改mysql并发参数~减少内存报警吧~
    efi
        31
    efi  
       2014-11-28 01:27:12 +08:00
    说不能用swap的主要是因为一不了解linux内存管理,二管不住应用程序使用内存的嘴。如果内存足够完全可以在开启swap的情况下避免swapping。如果内存不够可以用cgroup管住那个狂用内存又不太重要的应用。
    Lax
        32
    Lax  
       2014-11-28 09:33:55 +08:00
    @mahone3297
    cat /proc/meminfo |grep -i ^Swap
    用ganglia/nagios/zabbix都行搜监控软件。


    @efi agree
    notnumb
        33
    notnumb  
       2014-11-28 10:08:47 +08:00
    @Lax vm.swappiness=0 正解
    系统哪里有瓶颈,或者程序需要优化下
        34
    msg7086  
       2014-11-28 10:25:56 +08:00
    有很多时候系统会把内存里暂时不用的程序swap出去,然后把物理内存空出来用在刀刃上。

    比如现在很多系统上跑了很多不必要或者经常不必要的服务,或者跑着那种几天才会跑一次数据的后台进程,这种东西如果使用了不少内存但是又不是经常激活的状态,把这些内存扔进swap然后把内存空出来做磁盘cache提高性能有什么不好。为什么要非常绝对地说一定不能用到swap呢?为什么要阻止系统把内存用在刀刃上呢?楼上各位大神能说说不?
    mengzhuo
        35
    mengzhuo  
       2014-11-28 11:12:32 +08:00
    @efi 真汉子!
    @notnumb 设成0很危险,最好还是自己监视pages free
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1643 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 16:23 PVG 00:23 LAX 09:23 JFK 12:23
    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