了解 Linux 操作系统使用了多少内存的方法

You*_*nes 5 linux ubuntu memory command

我正在寻找一种方法来了解 Linux 操作系统正在使用的内存大小(我不担心其他应用程序的内存大小)。

我正在使用 Ubuntu 发行版(Ubuntu 15.10)。

typ*_*ast 5

操作系统内存 v. Ubuntu 内存 v. 内核内存

您要求知道“Linux 操作系统”使用了多少内存(而不是“应用程序”使用了多少内存)。“Linux”只是一个内核(尽管不是一个整体的内核;内核模块有助于有效占用空间)。最终用户视为“操作系统”的许多东西并不是内核的一部分,而是更大的 Ubuntu 发行版的一部分。在典型的桌面安装中,这包括窗口系统(通常为 xorg)、窗口管理器和桌面环境(默认情况下 Ubuntu 上的 Unity,其他包括 Gnome 和 KDE),以及执行基本操作的一整套其他进程,以便您可以与您的系统进行交互。

对于最终用户来说,“应用程序”一词通常意味着“网络浏览器”、“电子表格”等。我将这些称为“用户应用程序”。

有多种方法可以估计您的内核大小,但如果您希望估计 Ubuntu 使用了多少内存,则必须识别并添加所有相关进程(xorg、init 等)。另一种选择是使用类似top没有其他用户应用程序运行时的方法,并减去top终端仿真器和 shell 使用的内存。

总内存

有很多方法可以查看 Linux 系统的内存使用情况,其中一些方法比其他方法更精确。“使用中的内存”也有多种定义。也就是说,对于大多数非技术用途,top(1)可以很好地完成工作:

top - 17:23:50 up 7 days, 19:15,  3 users,  load average: 0.00, 0.01, 0.05
Tasks: 172 total,   2 running, 170 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.8 us,  0.1 sy,  0.0 ni, 99.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   2049992 total,  1735420 used,   314572 free,   372420 buffers
KiB Swap:  2095100 total,      192 used,  2094908 free.   679116 cached Mem
Run Code Online (Sandbox Code Playgroud)

作为额外的好处,由于下一个问题通常是“什么耗尽了内存?”,接下来的几行显示正在运行的进程以及(除其他外)它们正在使用多少虚拟内存。

请注意,Linux 上的“空闲”内存通常很小,但这是一件好事。空闲内存本质上是一种浪费的资源,因此 Linux 将其分配给各种缓存用途。如果应用程序需要该内存,它仍然可用;与此同时,Linux 正在充分利用它。