最近这些天有一台服务器总是会收到剩余swap过低的告警 Lack of free swap space on。
故障PROBLEM,服务器:jiangjiaowebserver发生: Lack of free swap space on 10.4.5.7故障!
告警主机:jiangjiaowebserver
告警时间:2019.03.30 19:11:40
告警等级:Warning
告警信息: Lack of free swap space on 10.4.5.7
告警项目:system.swap.size[,pfree]
问题详情:Free swap space in %:49.98 %
当前状态:PROBLEM:49.98 %
事件ID:334221
简单查看了一下服务器配置:
至于swap的监控,可以使用下面的脚本来做一些简单的分析,还算是比较实用的。
因为环境的swap使用很低,所以可以找一台服务器swap相对较高的,然后使用下面的脚本来分析
# vi s.sh for i in $( cd /proc;ls |grep "^[0-9]"|awk ' $0 >100') ;do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps 2>/dev/null ; done | sort -k2nr | head -10
执行s.sh此脚本如下:
# ./s.sh 23414 476.664M 23465 439.812M 23447 439.699M 23418 437.953M 23416 390.125M 736 119.012M 30920 20.5859M 22662 9.99219M 22659 9.66406M 22661 9.65625M 可以看到哪个进程占用较高的temp资源情况查看应用进程是什么如图(如果不是自己服务可以看情况去关掉):
上图片几个红色进程我查了一下资料可能是I2的灾备
sdatad.exe、rpcserver.exe、sdatalogd.exe、Srepd.exe、sdatabaklogd.exe、i2Availability.exe这些进程是否开启。进程描述如下:
服务名称 | 所属模块 | 说明 |
---|---|---|
i2-Availability | 共用 | 高可用功能模块 |
i2-rpc | 工作机\灾备机与控制机RPC的通讯模块 | |
i2-Sdatad | 工作机 | 工作机与灾备机Srepd的通讯模块 |
i2-Slogd | 工作机日志模块,并将日志送给控制机 | |
i2-Srepd | 灾备机 | 灾备机与工作机Sdatad的通讯模块 |
i2-Slogdbk | 灾备机日志模块,并将日志送给控制机 |
查看灾备的I2服务
kill掉占用高的进程
# kill -9 23465 # kill -9 23416 # kill -9 23414 # kill -9 23418
在次查看swap空间已释放了
zabbix监控也报告已恢复正常