Linux 内存已满,进程内存使用量未在 top 中累加

Linux 内存已满,进程内存使用量未在 top 中累加

我有一台 16GB 内存的电脑。目前,顶部显示所有内存都已占用,(不是通过缓存),但各个进程所使用的RAM距离16GB还差得很远。

我已经多次遇到过这个问题,但我不明白发生了什么。有什么线索吗?到目前为止,我唯一的补救措施就是重新启动机器。

答案1

据我了解,在 Linux 上“已使用”内存被分为“活动”内存和“非活动”内存。

活动内存是当前分配给某个进程并正在被该进程使用的内存。

非活动内存是指已分配给进程但不再被进程使用的内存(已被 free()d)。分配器会将该内存放在一边以备后用,但不会将其清空。如果再次请求该内存块中的相同数据,它只会将该内存块重新分配给进程。如果请求了内存块并且没有剩余的“干净”内存,它会开始重新分配该“脏”内存。

检查 /proc/meminfo 可以显示您的“已用”内存中有多少是活动的,有多少是非活动的。

答案2

确保启用了某些交换,并且交换量不为零。交换利用率通常表示是否存在实际的内存压力,而不仅仅是缓冲区/缓存暂时占用了可用内存。

相关内容