监控报警一个PVE节点的SWAP使用满了。一看的确如此,关键是节点本身的内存还大量闲着。
# free -m
total used free shared buff/cache available
Mem: 514606 320159 2121 1321 192325 189768
Swap: 8191 8188 3
# cat /proc/swaps
Filename Type Size Used Priority
/dev/dm-0 partition 8388604 8385152 -2
先看看谁在使用swap,排名前十的大户如下:
# for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r |head
kvm 2641580 kB
kvm 566428 kB
dsm_om_connsvcd 539060 kB
java 336164 kB
kvm 205096 kB
kvm 170492 kB
java 149788 kB
java 129692 kB
java 101392 kB
beam.smp 83636 kB
先试试关闭dsm_om_connsvcd(这个是dell openmanager的服务器设备状态监控程序)
# systemctl stop dsm_om_connsvc.service
root@ynode007:~# cat /proc/swaps
Filename Type Size Used Priority
/dev/dm-0 partition 8388604 7846572 -2
swap的使用率的确降低了,前后两次的Used相减,差不多就是。
可是kvm是虚拟机的基础,那几个java是lxc里面的程序,不敢杀停。
干脆禁止使用swap。
echo 0 > /proc/sys/vm/swappiness
# cat /proc/sys/vm/swappiness
0
修改生效需要重启swap设备
# swapoff -a
......
这里等了将近20分钟
......
# swapon -a
# cat /proc/swaps
Filename Type Size Used Priority
/dev/dm-0 partition 8388604 7436 -2
# free
total used free shared buff/cache available
Mem: 526956596 332714576 2227064 4134688 192014956 186672528
Swap: 8388604 7692 8380912
实际上swap used还是会缓慢上升,只能过段时间再清理。