【问题标题】:How to interpret linux's top correctly?如何正确解释linux的top?
【发布时间】:2011-03-27 23:22:04
【问题描述】:

我们正在运行分析一个 java 程序的内存使用情况。我们有一个 512 ram 的盒子,顶部显示使用了 500 MB 左右的 ram,几乎没有空闲。但是在 RES 列中,我们可以看到 jvm 只使用了 100MB 左右。而所有其他进程甚至都不重要(少于 1k)。那么究竟是什么消耗了所有内存,或者我们只是读错了顶部?

【问题讨论】:

标签: java linux memory-management top-command


【解决方案1】:

这 500MB 包括页面缓存使用的内存 - 磁盘文件的缓存部分。此内存可回收以供进程使用 - 因此,如果您将列为“空闲”的内存添加到列为“缓存”的内存,那么您将拥有仍可供任务使用的内存。

或者,您可以使用free 命令,该命令将这个数字列在-/+ buffers/cache: 行的“免费”列中。

【讨论】:

    【解决方案2】:

    此外,多个应用程序(想想动态库)使用的内存在每次被引用时都会被计数,即使它占用一份副本。也可以试试htop

    【讨论】:

      【解决方案3】:

      这是保留的内存。该进程不使用它,它是为它保留的。如果另一个进程想要分配更多内存,它将获得许可。

      【讨论】:

      • 不,不是,RES 是 Resident Set Size - 任务使用的物理内存。
      猜你喜欢
      • 1970-01-01
      • 2017-03-10
      • 2015-01-21
      • 1970-01-01
      • 2012-12-15
      • 2011-02-12
      • 2012-02-15
      • 1970-01-01
      • 2023-03-05
      相关资源
      最近更新 更多