最近zabbix监控平台上其中一台服务器器报警:High swap space usage (less than 50% free)
登上报警的服务器,查看虚拟内存使用情况
从上图发现,该台服务器的物理内存很足,还有11个G,而虚拟内存已经用了273M,操作虚拟内存总量的50%。
那么如何解除报警?
解决方案:
手动释放 虚拟内存
##在执行以下操作以前,查看你的swap分区是否满了,你首先查看一下你实际的内存剩多少空间,然后在查看自己的swap空间用了多少,首先提前保证实际剩余的内存比你的swap的内存的空间要大,然后执行一下操作,否则会宕机的!
首先我们停掉swap分区,停掉前先查看swap分区
swapon -s 会查看到你的swap分区是挂在哪里:
比如,该台服务器 swap 分区是挂到 /swapfile
[root@application ~]# swapon -s
Filename Type Size Used Priority
/swapfile file 524284 279808 -2
然后停掉swap分区
[root@application ~]# swapoff /swapfile
[root@application ~]# free -h
total used free shared buff/cache available
Mem: 31G 19G 365M 34M 11G 10G
Swap: 0B 0B 0B
停掉是需要一段时间的,因为他会把虚拟内存释放到实际内存当中。
然后再启动我们的swap分区
[root@application ~]# swapon -a
[root@application ~]# free -h
total used free shared buff/cache available
Mem: 31G 19G 366M 34M 11G 10G
Swap: 511M 0B 511M
参考链接:
linux下怎样释放内存、swap分区满的情况 https://blog.youkuaiyun.com/weixin_34347651/article/details/89806986
linux内存机制以及手动释放swap和内存 https://www.cnblogs.com/wangmo/p/9476490.html