首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一种了解Linux操作系统使用多少内存的方法

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

Unix & Linux用户
提问于 2015-11-29 23:03:48
回答 2查看 3.2K关注 0票数 5

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

我正在使用Ubuntu发行版(Ubuntu15.10)。

EN

回答 2

Unix & Linux用户

发布于 2015-11-29 23:26:49

操作系统内存诉Ubuntu内存诉内核内存

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

对于最终用户来说,“应用程序”这个词的意思通常是"web浏览器“、”电子表格“等,我会把它们称为”用户应用程序“。

有一些方法可以实现估计您的内核大小,但是如果您希望对Ubuntu正在使用的内存进行估计,则必须标识和汇总所有相关进程(xorg、init等)。另一种选择是在没有其他用户应用程序运行时使用类似于top的内容,并减去top以及终端模拟器和shell所使用的内存。

全内存

查看Linux系统内存使用情况的方法有很多种,有些方法比其他方法更精确。还有许多关于“使用中的内存”的定义。尽管如此,对于大多数非技术用途,顶部(1)会做得很好:

代码语言:javascript
复制
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只是在很好地利用它。

票数 5
EN

Unix & 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...‘中出现的东西实际上是低级条目(与模块相关的条目,实际上可能是模块创建的任务,但我不确定这一点)。

代码语言:javascript
复制
me $ cat /proc/1
46511 1381 790 348 0 37483 0

请注意,这些数字是以页来衡量的。在大多数情况下,这意味着要将该数字乘以4096,使其大小以字节为单位。

代码语言:javascript
复制
   /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下可用。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/246288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档