Ubuntu 中什么占用了我所有的内存?隐藏进程?

Ubuntu 中什么占用了我所有的内存?隐藏进程?

我正在运行此命令来查看按 RAM 使用情况列出的所有进程:

ps aux | awk '{print $6/1024 " MB\t\t" $11}' | sort -n

最大的一个是178MB

但当我运行时,glances我发现 RAM 已使用 96%(总共 10GB)

当我按 MEM% 排序时,最高的是我的节点服务器,为 1.8%

在我看来好像有一些隐藏进程占用了大量内存。

我正在运行一个虚拟机。

OOM killer 正在关闭我的进程,这就是我发现这个问题的方式。

答案1

这是有意为之。内存是一种“要么使用,要么丢失”的资源。你无法将其保存以备后用。因此,现代操作系统会尽可能地使用尽可能多的内存。

如果你在想,“我现在想释放那块内存,以便以后使用”,那就再仔细想想吧。你现在可以使用该内存稍后再使用。这里不存在痛苦的权衡。

比如说,你运行一个程序,程序运行完毕。操作系统可以将该程序保留在内存中,以防你再次运行该程序。如果这样做,也不会造成任何损害。如果程序不再运行,内存可以稍后丢弃。但是如果你再次运行该程序,I/O 就会被节省,因为它不必从磁盘读取。因此,操作系统宁愿将最近执行的程序的副本保留在内存中,也不愿让该内存空闲。当然,这块内存与任何进程都没有关联。

答案2

使用free命令。您可能看不到太多报告Free,但可能会看到很多报告Availableman free会告诉您差异。

相关内容