如何在顶部以兆字节显示 meminfo?

Ant*_*ich 249 linux memory top meminfo

有时,当您有几场 RAM 时,以千字节为单位查看 meminfo 并不舒服。在 Linux 中,它看起来像:

顶部,内存统计信息都缩放到 Kb

这是它在 Mac OS X 中的样子:

顶部,内存统计数据缩放到 Mb 和 Gb

有没有办法在 Linux top 中以 TB、GB 和 MB 显示 meminfo?

小智 293

在顶部时,键入大写“E”在总内存信息中循环通过不同的内存单位(KiB、MiB、GiB 等,不同于 kB、MB 和 GB):

该图显示了以 GiB 为单位的顶级通用内存显示。

虽然小写的“e”执行相同的单独流程:

图像显示顶部的进程,其中内存以 MiB 显示

从联机帮助页:

2c. MEMORY Usage
    This  portion  consists of two lines which may express values in kibibytes
    (KiB) through exbibytes (EiB) depending on  the  scaling  factor  enforced
    with the 'E' interactive command.
Run Code Online (Sandbox Code Playgroud)

版本信息: top -versionprocps-ng version 3.3.9
系统:CentOS的7

  • 在 RHEL 中对我不起作用 (10认同)
  • @AnthonyAnanich:在 RHEL 7 中对我有用。 (6认同)
  • <来自未来的时间机器>我发现 PB 的默认单位严重不足且无用。我总是最终不得不至少点击一次 E 才能以艾字节为单位设置顶部。</来自未来的时间机器> (6认同)
  • 适用于 ubuntu 14.04 欢呼。 (5认同)

Ant*_*ich 81

有一个命令行选项可以做到这一点:

-M : Detect memory units
            Show memory units (k/M/G) and display floating point values in the
            memory summary.
Run Code Online (Sandbox Code Playgroud)

所以像这样运行 top 就足够了:

top -M
Run Code Online (Sandbox Code Playgroud)

如果-M不起作用,您可以E在已经在顶部时按下。

来自man top(procps-ng 3.3.9 版):

E :Extend-Memory-Scale in Summary Area 使用此命令,您可以循环使用范围从 KiB(kibibytes 或 1,024 字节)到 EiB(exbibytes 或 1,152,921,504,606,846,976 字节)的可用汇总区域内存缩放。

如果您在显示的数字和以下标签之间看到“+”,则表示 top 被迫截断该数字的某些部分。通过提高比例因子,可以避免这种截断。

顶部,以“M”显示内存单位

  • +1 ,但在 Ubuntu 中检查,它说不起作用。在 Ubuntu 中有什么办法吗? (28认同)
  • 那个模糊不够模糊,安东尼奥。 (4认同)
  • 适用于 RHEL 6(按“E”不是最高评论) (3认同)
  • 该死的,你通过一个简单(但很好)的自我回答问答积累了大量的业力。干得好。 (2认同)

rɑː*_*dʒɑ 59

您也可以使用htop. 它比top.

如果您使用的是 Debian 或其衍生产品之一,那么您可以使用sudo apt-get install htop.

htop 截图

编辑:这是一个具有更好配色方案的屏幕截图:

htop 屏幕截图,颜色更好

  • `htop` 在白色或黑色背景下看起来更好。您的屏幕截图配色方案不够理想。 (19认同)
  • @jlliagre 旁观者之眼。 (2认同)
  • 添加了 @macmadness86 备用屏幕截图 (2认同)

slm*_*slm 38

top -M据我所知,它不适用于任何 Fedora、Debian 或 Ubuntu 发行版。我刚试过,它不在procps-ng提供top. 有很多实现,top所以需要特别注意它们使用的。

一般来说,最好free与切换一起使用以获得 Linux 上的可用内存量。

procps 与 procps-ng

您可能已经注意到,在 CentOS 5 和 6 以及 RHEL 5 和 6 上top -M似乎都可以工作。这是因为这些发行版附带了原始版本的procps. 该项目已分叉,现在有另一个项目procps-ng

Fedora 项目页面上的一些关于为什么会有分叉的细节。

摘抄

旧的(遗留的)procps 工具几年来没有更新,这导致了大规模的代码拆分,这是由仅在本地应用的分发特定补丁的应用程序造成的,这些补丁没有合并到上游。该项目变得难以维护,因为一些新编写的补丁与其他发行商维护的源不兼容。在应用程序行为及其命令行开关中可以注意到类似的不兼容性。这个不可避免的更新可以理解为统一所有 Linux 发行版中的 procps 工具的努力。

所以要清楚,分叉项目procps-ng是 Debian、Fedora、Ubuntu 和其他发行版正在使用的,遗留项目,它确实支持top -M仍在使用几个跟不上最新的长期版本和最伟大的。

注意:我下载了最新版本的procps-ng“procps-ng version 3.3.9.1-14ef”,它也没有-M开关。

$ ./top/top -version
  procps-ng version 3.3.9.1-14ef
Usage:
  lt-top -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]
Run Code Online (Sandbox Code Playgroud)

自由

在运行free与开关,就可以看到最可能的原因,为什么缺乏单元功能,从缺少procps-ng的执行top

$ free -m
             total       used       free     shared    buffers     cached
Mem:          7782       6506       1276          0        504       1726
-/+ buffers/cache:       4274       3507
Swap:         7823       1429       6394
[saml@greeneggs ~]$ free -k
             total       used       free     shared    buffers     cached
Mem:       7969492    6663180    1306312          0     516948    1764780
-/+ buffers/cache:    4381452    3588040
Swap:      8011772    1463456    6548316
Run Code Online (Sandbox Code Playgroud)

四舍五入变得有问题,所以我相信,procps的实现通过不提供能力来避免这个问题。

在显示聚合内存使用情况方面做得很好。

   htop 的 ss

在顶上

在我看来,这是查看内存的更好工具。

   顶上的ss

纳米

另一个有用的工具是nmon查看系统性能。

   nmon的SS

  • @AnthonyAnanich - 我对此进行了更多研究。CentOS 5.4 的顶级版本“procps version 3.2.8”有`-M` 开关,CentOS 5.8 也有这个开关,“procps version 3.2.7”。然而,Fedora 19 有“procps-ng version 3.3.8”,它不支持`-M` 开关。 (2认同)

小智 28

您可以按以下键:

  • e -- 更改摘要显示上的比例因子
  • Shift+ e-- 改变任务的比例因子
  • Shift+ w-- 保存当前设置

  • 不知道 `Shift` + `w` ,保存我的配置的好提示:) (6认同)

小智 8

您可以使用命令行选项E指定内存缩放比例,例如以 GB 为单位:

$ top -E g
Run Code Online (Sandbox Code Playgroud)

man top

-E  :Extend-Memory-Scaling as:  -E  k | m | g | t | p | e
     Instructs top to force summary area memory to be scaled as:
         k - kibibytes
         m - mebibytes
         g - gibibytes
         t - tebibytes
         p - pebibytes
         e - exbibytes

     Later this can be changed with the `E' command toggle.
Run Code Online (Sandbox Code Playgroud)

-e选项可以与相同的选项一起使用来更改任务列表中的值。

操作系统:Ubuntu 20.04 和 RHEL 9


and*_*ien 7

所以快速回答:根据您的 linux 发行版,请尝试:

top -M
Run Code Online (Sandbox Code Playgroud)

或者,在启动 top 后,输入大写E(然后输入W来编写配置)。

其中之一应该适用于几乎所有人(当然,Solaris 除外,在那里你很幸运能拥有顶级)。

额外提示:每次在新安装上启动顶级实例时,键入ExyzW以保存颜色、突出显示和单位 -真是一种解脱!

  • 所有这些信息都已经发布了。 (5认同)