Linux系统used内存占用很大,而实际系统中个进程并没有占用这么多内存

时间:2023-01-21 12:14:33

问题

新装服务器,used内存占用很大,而实际系统中个进程并没有占用这么多内存

现象

top查看下,used很大,如果有其他外部程序向监控服务器的内存,used实际是个比较关键的指标,而该指标却并没有反应出服务器实际占用情况:
Linux系统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,释放缓存