Linux 系统清理内存

前言:以前使用Linux的时候一直不怎么关注内存,直到去年黑五买了个128M内存的特价机。一个yum makecache的命令下,可用内存只剩下6M,因此对于内存的使用就变得相当敏感起来。特价机闲置了快一年了,昨天看了篇文章《物尽其用:使用otunnel把64M小内存鸡用作服务中心》之后有点蠢蠢欲动,不过这些应该是题外话了。

基本操作

查看内存使用情况
# watch -n 5 free -m
清理内存
# echo 1 > /proc/sys/vm/drop_caches
好了,现在内存就算清理完了,现在来说说 echo 1 > /proc/sys/vm/drop_caches时发生了什么。具体可见下方参考资料《Documentation for /proc/sys/vm/*》这里只做简要说明。
  • 0 – 不释放
  • 1 – 释放页缓存
  • 2 – 释放Dentries和Inodes
  • 3 – 释放所有缓存
很显然,在这个讲究Gracefully shutdown的年代,你直接echo 3会导致一些列业务数据的丢失,因此我们需要将待处理的缓存写入硬盘
# sync
# echo 3 > /proc/sys/vm/drop_caches
最后还不应该忘记清理Swap(我还在用swap还真的是对不起啊),清理它只需要将其关闭后再开启即可。
#swapoff -a && swapon -a

参考资料

评论