1
Sunyanzi 2014-11-27 16:39:52 +08:00 1
SWAP 的用量应该恒为 0 ... 吃到就要报警了 ...
|
2
EPr2hh6LADQWqRVH 2014-11-27 16:40:25 +08:00 1
swap不是好东西,内存抖动还不如直接杀进程呢
要内存不要swap |
3
hydrazt 2014-11-27 16:45:46 +08:00 1
1. 加内存,加服务器
2. 吃内存的服务修改配置 |
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 |
5
hydrazt 2014-11-27 16:49:46 +08:00 1
zabbix 默认监控项里面就有swap的使用量监控
|
6
cloudzhou 2014-11-27 17:02:57 +08:00 1
基本上,现在已经不推荐使用 swap 了,容易导致系统抖动,尤其在现在有大内存支持下。
|
7
zts1993 2014-11-27 17:03:36 +08:00
加内存
|
8
kkxxxxxxx 2014-11-27 17:32:34 +08:00
512M小内存,不用swap不行啊,内存又加不起
|
9
efi 2014-11-27 17:48:38 +08:00 via Android
无swap,oom随机杀进程,过一会发现数据库被杀了
|
10
halczy 2014-11-27 17:53:04 +08:00 1
除了用来备份/存文件/DEV那些机子之外, 其他的都不会用到SWAP.
|
11
ab 2014-11-27 17:54:46 +08:00 1
同意1,2楼. 每次swap一动,负载马上飞天
|
12
9hills 2014-11-27 17:56:49 +08:00
关掉SWAP,用inittab保证sshd不死
然后做好内存监控,内存超了就OOM吧 |
13
efi 2014-11-27 18:06:52 +08:00 via Android 1
调内核参数vm.swappiness。为了避免oom杀掉数据库,内核特别把=0的语义改成=1,颇有争论。
|
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 |
16
efi 2014-11-27 18:21:51 +08:00 via Android
杀掉数据库比简单的挂掉要糟得多,你宁愿数据库停止然后去优雅关闭也不愿简单的杀掉。
swappiness已经可以起到绝大多数时候避免swap的作用,但是你还是需要swap来处理极端情况。一个折中办法是使用zswap减少io。 |
17
efi 2014-11-27 18:24:28 +08:00 via Android
应用内部可以还调用madvise通知内核避免swap。简单的取消swap其实是丢弃了一道防护。
|
18
efi 2014-11-27 18:27:13 +08:00 via Android
总而言之linux的内存管理系统显然是有这方面特性满足实时应用的内存需求的。
|
19
xtaoyumo 2014-11-27 18:28:04 +08:00
关闭 swap
|
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。发现有交换就报警。 |
21
typcn 2014-11-27 18:41:23 +08:00 via iPad
我服务器上有好多程序基本不会运行到的数据文件也加载到内存中,开了减轻压力,只开了512m sw
|
22
bobopu 2014-11-27 19:05:05 +08:00 via iPhone
我现在swap已经达到内存的50%系统抖动十分厉害,打算升级内核后开zswap
|
23
jackzou 2014-11-27 20:41:46 +08:00
调内核参数vm.swappiness
监控swap的值,非零就报警 |
24
wxm4ever 2014-11-27 20:44:32 +08:00
在阿里云上搭gitlab.我宁愿开1g swap也不愿意多花钱升级内存~~~ - -
|
25
mahone3297 2014-11-27 21:40:34 +08:00
|
26
billwang 2014-11-27 22:03:53 +08:00 1
华三网管系统,监控cup、内存、进程、weblogic、oracle、ping告警等等,告警后直接报缺陷工单,短信提醒。
|
27
uniudy 2014-11-27 22:25:03 +08:00 via iPad
尽可能关掉swap,宁愿挂掉也不能响应慢
|
28
xwsoul 2014-11-27 22:32:53 +08:00
用上swap 服务器就离躺不远了 很可能被接下来的一波带走
|
29
msg7086 2014-11-27 22:36:00 +08:00 via iPhone
完全不明白为什么一排人说不能用swap。
完全关闭swap会导致最主要的两个问题 1 系统不能更合理地使用内存 2 限制了virt内存的使用量 |
30
oyjj 2014-11-28 00:08:49 +08:00
修改mysql并发参数~减少内存报警吧~
|
31
efi 2014-11-28 01:27:12 +08:00
说不能用swap的主要是因为一不了解linux内存管理,二管不住应用程序使用内存的嘴。如果内存足够完全可以在开启swap的情况下避免swapping。如果内存不够可以用cgroup管住那个狂用内存又不太重要的应用。
|
32
Lax 2014-11-28 09:33:55 +08:00
|
34
msg7086 2014-11-28 10:25:56 +08:00
有很多时候系统会把内存里暂时不用的程序swap出去,然后把物理内存空出来用在刀刃上。
比如现在很多系统上跑了很多不必要或者经常不必要的服务,或者跑着那种几天才会跑一次数据的后台进程,这种东西如果使用了不少内存但是又不是经常激活的状态,把这些内存扔进swap然后把内存空出来做磁盘cache提高性能有什么不好。为什么要非常绝对地说一定不能用到swap呢?为什么要阻止系统把内存用在刀刃上呢?楼上各位大神能说说不? |