您要求知道“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 正在充分利用它。