码迷,mamicode.com
首页 > 其他好文 > 详细

一次关于swap占用问题的处理

时间:2018-05-13 16:54:39      阅读:2317      评论:0      收藏:0      [点我收藏+]

标签:swap

最近工作中遇到这样一个问题,记录一下。

现象:

一台机器swap报警,监控图显示swap使用率达到了75%左右,但查看内存使用率监控发现并不高,只有20%。

排查思路:

  1. 登录机器使用free命令查看也是如此,说明监控本身没有问题。
  2. 考虑把监控图时间拉长,发现两天前这台机器的内存使用率有一个峰值,当时内存使用率达到了80%,同时swap使用率也随之上升到了80%左右,接着内存使用率很快降下来,但是swap并没有随着内存空闲下来而相应下降,而是一直维持在75%左右。

解决:

在剩余内存大于swap占用空间的前提下,执行:

swapoff -a && swapon -a

该命令会将当前swap的内容重新导入内存。

调研:

  1. 为什么在内存释放后,swap不会自动释放,在网上没有找到很有说服力的解释。
  2. 有一说free查看到的只是swap分配出去的空间,并不代表当前就在使用,可以执行vmstat命令查看si/so两列确认当前是否正在使用swap,详见链接。不过我想既然已分配,使用不使用就是随时的事,还是直接释放为好。
  3. 关于vm.swappiness内核参数,在3.5+内核以后0表示关闭swap,因此建议3.5+以后的内核将该参数最小设置为1,而不是0,除非确实想要关闭swap。(上一链接中也有说明)
  4. 更多关于swap的问题,可以参考Ubuntu的FAQ页面

一次关于swap占用问题的处理

标签:swap

原文地址:http://blog.51cto.com/zxdlife/2115711

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!