之路 on it Road.com

字段

信息以高和低统计数据的形式出现。
在顶部,我们会看到人们希望查看的最常见价值观的摘要。
我们可以在下面找到我们将讨论的各个值。
我们将首先讨论高统计量。

高级统计

  • MemTotal :总可用内存(即物理内存减去一些保留位和内核二进制代码)
  • MemFree :是 LowFree+HighFree 的总和(总体统计)
  • MemShared:0;在这里是出于兼容性原因,但始终为零。
  • Buffers:缓冲区缓存中的内存。现在作为度量标准几乎没用 原始磁盘块的相对临时存储不应该变得非常大(20MB 左右)
  • Cached : pagecache (diskcache) 中的内存减去 SwapCache,不包括 SwapCached
  • SwapCache :曾经被换出的内存,被换回但仍然在交换文件中(如果需要内存,它不需要再次换出,因为它已经在交换文件中。这节省了 I/O )

详细统计

  1. 虚拟机统计
    VM 将缓存页面拆分为“活动”和“非活动”内存。
    这个想法是,如果我们需要内存并且需要为此牺牲一些缓存,我们可以将其从非活动状态中取出,因为预计不会使用它。
    虚拟机定期检查使用的内容并移动内容。

统计数据如下:

  • Active:最近使用过的内存,除非绝对必要,否则通常不会回收。
  • Inact_dirty :脏意味着“可能需要写入磁盘或者交换。”需要更多的工作来释放。示例可能是尚未写入的文件。它们不会太快写入内存以保持 I/O 关闭。例如,如果我们正在编写日志,最好等到我们准备好完整的日志后再将其发送到磁盘。
  • Inact_clean :假设很容易免费。内核会尽量保持一些干净的东西总是有一点喘息的空间。
  • Inact_target :只是内核用于确保周围有足够的非活动页面的目标指标。超过时,内核将无法将页面从活动状态移动到非活动状态。页面也可以通过其他几种方式变得不活跃,例如如果我们执行长时间的顺序 I/O,内核会假设我们不会使用该内存并预防性地使其处于非活动状态。因此,我们可以获得比目标更多的非活动页面,因为内核将某些缓存标记为“更有可能从未使用过”,并让它按照“上次使用”的顺序进行欺骗。
  1. 内存统计
  • HighTotal :是高区内存总量。 Highmem 是所有高于(大约)860MB 物理 内存 的内存。内核使用间接技巧来访问高内存区域。数据缓存可以进入这个内存区域。
  • LowTotal :非高性能内存的总量。
  • LowFree :低内存区域的可用内存量。这是内核可以直接寻址的内存。所有内核数据结构都需要进入低内存。
  • SwapTotal :物理交换内存总量。
  • SwapFree :可用的交换内存总量。已从 内存 中逐出并暂时位于磁盘上的内存
  • Dirty :正在等待写回磁盘的内存
  • Writeback:正在主动写回磁盘的内存
  • Mapped :已映射的文件,例如库
  • Slab:内核数据结构缓存
  • Committed_AS :估计需要多少 内存 才能保证 99.99% 的工作负载永远不会出现 OOM(内存不足)。通常内核会过量使用内存。这意味着,假设我们执行 1GB malloc,实际上什么也没有发生。只有当我们开始使用 malloc 内存时,我们才会按需获得真正的内存,并且与我们使用的一样多。所以你有点抵押贷款,希望银行不要破产。其他情况可能包括当我们映射一个文件时,该文件仅在我们写入时共享并且我们获得该数据的私有副本。虽然它通常在进程之间共享。 Committed_AS 是对最坏情况下需要多少 内存/swap 的估计值。
  • PageTables :专用于最低级别页表的内存量。
  • ReverseMaps : 执行的反向映射数
  • VmallocTotal : vmalloc 内存区域的总大小
  • VmallocUsed : 使用的 vmalloc 区域的数量
  • VmallocChunk : 最大空闲的 vmalloc 区域的连续块
了解 /proc/meminfo 文件(分析 Linux 中的内存利用率)

/proc 文件系统是伪文件系统。
它不存在于磁盘上。
相反,内核在内存中创建它。
它用于提供有关系统的信息(最初是关于进程,因此得名)。

'/proc/meminfo' 用于报告系统上空闲和已用内存(物理和交换)的数量以及内核使用的共享内存和缓冲区。

/proc 文件系统在 proc 手册页 (man proc) 中有更详细的描述。

“cat /proc/meminfo”示例

命令“cat /proc/meminfo”的输出会因服务器的操作系统和架构而异。
下面列出的字段可能与系统略有不同或者不存在。

# cat /proc/meminfo 
MemTotal:        1882064 kB
MemFree:         1376380 kB
MemAvailable:    1535676 kB
Buffers:            2088 kB
Cached:           292324 kB
SwapCached:            0 kB
Active:           152944 kB
Inactive:         252628 kB
Active(anon):     111328 kB
Inactive(anon):    16508 kB
Active(file):      41616 kB
Inactive(file):   236120 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
Dirty:                40 kB
Writeback:             0 kB
AnonPages:        111180 kB
Mapped:            56396 kB
Shmem:             16676 kB
Slab:              54508 kB
SReclaimable:      25456 kB
SUnreclaim:        29052 kB
KernelStack:        2608 kB
PageTables:         5056 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     3038180 kB
Committed_AS:     577664 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       14664 kB
VmallocChunk:   34359717628 kB
HardwareCorrupted:     0 kB
AnonHugePages:     24576 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       69632 kB
DirectMap2M:     2027520 kB
日期:2020-09-17 00:14:32 来源:oir作者:oir