问题
服务器used内存占用很大,而实际系统中个进程并没有占用这么多内存
现象
top查看下,used很大,如果有其他外部程序向监控服务器的内存,used实际是个比较关键的指标,而该指标却并没有反应出服务器实际占用情况:
原因
实际这是缓存原因导致,可以通过命令释放,即上图的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,释放缓存
测试测试测试测试测试测试测试测试测试测试测试测试测试测试
48448
测试