了解 htop 中系统和进程内存之间的区别

了解 htop 中系统和进程内存之间的区别

我对 htop 报告的其中一台服务器上的内存统计信息感到有些困惑。在顶部栏中,它显示系统内存如下:

Mem: 456 / 7950MB

因此,看起来使用率很低。

但是,我的主要进程显示它的内存使用情况如下:

VIRT    RES     SHR     MEM% 
13.3G   2388M   2239M   30%

嗯,高很多。

为什么系统统计信息只显示使用了 456MB,而进程却报告它使用了 2388MB?

更新以下是 的输出free

             total       used       free     shared    buffers     cached
Mem:       8141292    5425364    2715928          0     103560    4839368
-/+ buffers/cache:     482436    7658856
Swap:      2097148          0    2097148

答案1

Htop 显示内存:总计、已用、缓冲区和缓存。如果将已用、缓冲区和缓存相加,结果将等于命令 free 的结果。Htop 需要考虑所有结果,因为进程可以使用任何内存。Man htop 描述内存的方式如下:

   M_SIZE (VIRT)
        Size in memory of the total program size.

   M_SHARE (SHR)
        The size of the process’s shared pages

   PERCENT_MEM(MEN%)
        The percentage of memory the process is currently using (based on the process’s resident memory size, see M_RESIDENT below).

   M_RESIDENT (RES)
        The resident set size, i.e the size of the text and data sections, plus stack usage.

我希望我能帮到你。

答案2

为什么系统统计信息只显示使用了 456MB,而进程却报告它使用了 2388MB?

您误解了htop输出。

它报告 456 MB自由的总 RAM 为 7950MB。

相关内容