Zabbix High swap space usage
问题现象
Zabbix 出现Highswap space usage(less than 50% free)告警,提示交换分区空间使用率超过50%
处理过程
1. 确定swap分区是否已占满
free -h
登录Zabbix服务器检查内存情况,检查发现Linux服务器空闲的内存还有不少,但是使用了大量的Swap空间(超过50%)
2. 统计swap高占用进程
for file in /proc/*/status; do awk '/VmSwap|Name/{printf $2 " " $3}END{print ""}' $file; done | sort -k 2 -n -r | more
不断下拉发现postmaster、zabbix_server进程数量相对比较多且内存占用量较大,虽然php-fpm有20多个进程,但是内存占用量比较小,gnome等其他进程数量则相对更少
3. 统计高进程内存占用量
- 统计zabbix_server进程数量
for file in /proc/*/status; do awk '/VmSwap|Name/{printf $2 " " $3}END{print ""}' $file; done | sort -k 2 -n -r | grep -wi "zabbix_server" | wc -l
- 统计zabbix_server进程占用内存大小
for file in /proc/*/status; do awk '/VmSwap|Name/{printf $2 " " $3}END{print ""}' $file; done | sort -k 2 -n -r | grep -wi "zabbix_server" > temp.ini
sum=0
for mem in `cat temp.ini | awk -F ' ' '{print $2}'`; do sum=$[$sum+$mem]; done
echo $sum
同理可以计算postmaster等其他进程内存使用量
最后统计发现,zabbix_server共有866个进程,占用2.2G的swap内存,接近swap已使用空间的大部分,属于异常情况,需要重启zabbix_server服务
4. 重启zabbix服务
- 重启服务前建议对虚拟机进行快照,保存当前状态,便于快速回滚
systemctl restart zabbix-server
检查swap交换空间内存发现已经恢复正常
zabbix数据大量写入swap空间明显属于异常,可能是某个bug导致数据并未正常写入磁盘空间,有待进一步定位排查
End
- 欢迎关注,感谢支持!