SERVER:~ # free -h
total used free shared buffers cached
Mem: 31G 26G 4.5G 98M 0B 1.0G
-/+ buffers/cache: 25G 5.4G
Swap: 4.0G 68M 3.9G
SERVER:~ #
SERVER:~ # uptime
07:59am up 45 days 23:03, 1 user, load average: 0.00, 0.01, 0.05
SERVER:~ #
因此,实际上没有额外的进程在运行,会消耗内存。
已经发出了“echo 3 >/proc/sys/vm/drop_caches”,但它只是 3G->1G 缓存 RAM。
我慢慢地认为内存使用情况有问题。
如果我重新启动服务器,就可以了,但是几十天后......所有内存都再次被消耗,甚至交换空间使用量也开始变大。
在停止进程(对于自定义软件)之前,我没有从“ps”命令中看到任何表明进程正在使用高内存的内容。没有什么。
问题:如何检测是什么耗尽了所有内存?是内存泄漏吗?
答案1
尝试运行一下free -g
,看看有多少“已用”内存实际上只是“缓存”了。缓存内存将在需要时释放。