服务器已经持续运行375天了,查看此服务器15G的内存,几乎全被使用,top查看了进程的内存占用情况,一个个计算下来,总量不超过20%,表示非常奇怪。网上百度了一波,表示是缓存cached引起,于是尝试清除缓存后解决。拷贝上述博客中的解决方案如下:
原因
实际这是缓存原因导致,可以通过命令释放,即上图的cached部分
解决
执行以下命令:
-
echo 0 >/proc/sys/vm/drop_caches
-
free -m #看内存是否已经释放掉了。
-
如果我们需要释放所有缓存,就输入下面的命令:
-
echo 3 > /proc/sys/vm/drop_caches
0-3的参数含义:
-
设置值说明:
-
0:不释放(系统默认值)
-
1:释放页缓存
-
2:释放dentries和inodes
-
3:释放所有缓存
注意
重启后会恢复原样,可以通过脚本定期执行echo 3 > /proc/sys/vm/drop_caches,释放缓存
内存正常释放了,但是swap空间还是没有改变,使用如下两命令可释放swap。
swapoff -a
swapon -a