我正在寻找一种方法来了解Linux操作系统正在使用的内存大小(我并不担心其他应用程序的内存大小)。
我正在使用Ubuntu发行版(Ubuntu15.10)。
发布于 2015-11-29 23:26:49
您已经要求知道"Linux OS“使用了多少(而不是”应用程序“使用了多少内存)。"Linux“只是一个内核(尽管不是一个单一的内核;内核模块有助于实现有效的占用)。最终用户认为“OS”的许多东西不是内核的一部分,而是更大的Ubuntu发行版的一部分。在典型的桌面安装中,这包括窗口系统(通常是xorg)、窗口管理器和桌面环境(默认情况下是Ubuntu上的Ubuntu,其他包括Gnome和KDE),以及执行基本操作以便与系统交互的大量其他进程。
对于最终用户来说,“应用程序”这个词的意思通常是"web浏览器“、”电子表格“等,我会把它们称为”用户应用程序“。
有一些方法可以实现估计您的内核大小,但是如果您希望对Ubuntu正在使用的内存进行估计,则必须标识和汇总所有相关进程(xorg、init等)。另一种选择是在没有其他用户应用程序运行时使用类似于top的内容,并减去top以及终端模拟器和shell所使用的内存。
查看Linux系统内存使用情况的方法有很多种,有些方法比其他方法更精确。还有许多关于“使用中的内存”的定义。尽管如此,对于大多数非技术用途,顶部(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另外,由于下一个问题通常是“什么占用了内存?”,接下来的行将显示正在运行的进程,以及它们使用了多少虚拟内存。
请注意,Linux上的“空闲”内存通常是一个非常小的数字,这是一件好事。空闲内存本质上是一种浪费资源,因此Linux将其分配给各种缓存使用。如果一个应用程序需要这个内存,那么它仍然可用;同时,Linux只是在很好地利用它。
发布于 2016-12-13 07:05:03
基本内核是vmlinuz文件在/boot下。“z”代表“使用z库压缩”。不幸的是,我不知道如何解压缩它来查看一旦解压缩的大小。
同样,正如@type_outcast所提到的,内核使用模块来访问硬件和处理其他一些特性。这些都是在/lib/modules/<version>下发现的。您可以使用lsmod确定加载了哪些模块。该列表包括一个具有每个模块大小的Size列。
因此,如果您想知道内核使用的大小,这将是一个相对接近的近似。
另外,您还有内存文件。试试cat /proc/meminfo。这将给出两个附加参数:KernelStack和Buffers。
此外,您还可以从各种进程(如process 1 )获得信息,这是init进程,它可以被视为内核的一部分。它的信息可以在/proc/1下找到。内存使用显示了一些数字,它们是解释如下。您可以使用ps -ef | less并查看CMD列找到这样一个低级别进程的列表。括号'...name...‘中出现的东西实际上是低级条目(与模块相关的条目,实际上可能是模块创建的任务,但我不确定这一点)。
me $ cat /proc/1
46511 1381 790 348 0 37483 0请注意,这些数字是以页来衡量的。在大多数情况下,这意味着要将该数字乘以4096,使其大小以字节为单位。
/proc/[pid]/statm
Provides information about memory usage, measured in pages.
The columns are:
size (1) total program size
(same as VmSize in /proc/[pid]/status)
resident (2) resident set size
(same as VmRSS in /proc/[pid]/status)
shared (3) number of resident shared pages (i.e., backed by a file)
(same as RssFile+RssShmem in /proc/[pid]/status)
text (4) text (code)
lib (5) library (unused since Linux 2.6; always 0)
data (6) data + stack
dt (7) dirty pages (unused since Linux 2.6; always 0)如果您对其他各种进程感兴趣,那么所有的数据都将在/proc下可用。
https://unix.stackexchange.com/questions/246288
复制相似问题