Prometheus Node_exporter 之 Memory Detail Meminfo /proc/meminfo
1. Memory Active / Inactive
type: Graph
Unit: bytes
Label: Bytes
Inactive - 最近使用较少的内存, 优先被回收利用 /proc/meminfo Inactive
metrics:
node_memory_Inactive_bytes{instance=~"$node:$port",job=~"$job"}
Active - 最近被频繁使用的内存,除非绝对必要,否则通常不会回收 /proc/meminfo Active
metrics:
node_memory_Active_bytes{instance=~"$node:$port",job=~"$job"}
2. Memory Commited
type: Graph
Unit: bytes
Label: Bytes
Committed_AS - 当前系统已经分配的内存量,包括已分配但尚未使用的内存大小 /proc/meminfo Committed_AS
metrics:
node_memory_Committed_AS_bytes{instance=~"$node:$port",job=~"$job"}
CommitLimit - 当前系统可分配的内存量 /proc/meminfo CommitLimit
metrics:
node_memory_CommitLimit_bytes{instance=~"$node:$port",job=~"$job"}
3. Memory Active / Inactive Detail
type: Graph
Unit: bytes
Label: Bytes
Inactive_file - LRU list 上长时间未被访问过的与文件对应的内存页 /proc/meminfo LRU_INACTIVE_FILE
metrics:
node_memory_Inactive_file_bytes{instance=~"$node:$port",job=~"$job"}
Inactive_anon - 上长时间未被访问过的匿名页和交换区缓存(包括 tmpfs) /proc/meminfo LRU_INACTIVE_ANON
metrics:
node_memory_Inactive_anon_bytes{instance=~"$node:$port",job=~"$job"}
Active_file - LRU list 最近被访问过的与文件对应的内存页 /proc/meminfo LRU_ACTIVE_FILE
metrics:
node_memory_Active_file_bytes{instance=~"$node:$port",job=~"$job"}
Active_anon - 最近被访问过的匿名页和交换区缓存(包括 tmpfs) /proc/meminfo LRU_ACTIVE_ANON
metrics:
node_memory_Active_anon_bytes{instance=~"$node:$port",job=~"$job"}
4. Memory Writeback and Dirty
type: Graph
Unit: bytes
Label: Bytes
Writeback - 正准备主动回写硬盘的缓存页 /proc/meminfo Writeback
metrics:
node_memory_Writeback_bytes{instance=~"$node:$port",job=~"$job"}
WritebackTmp - FUSE用于临时写回缓冲区的内存 /proc/meminfo WritebackTmp
metrics:
node_memory_WritebackTmp_bytes{instance=~"$node:$port",job=~"$job"}
Dirty - 需要写回磁盘的数据大小 /proc/meminfo Dirty
metrics:
node_memory_Dirty_bytes{instance=~"$node:$port",job=~"$job"}
5. Memory Shared and Mapped
type: Graph
Unit: bytes
Label: Bytes
Mapped - mapped 缓存页占用的内存 /proc/meminfo Mapped
metrics:
node_memory_Mapped_bytes{instance=~"$node:$port",job=~"$job"}
Shmem - 共享内存 /proc/meminfo Shared
metrics:
node_memory_Shmem_bytes{instance=~"$node:$port",job=~"$job"}
6. Memory Slab
type: Graph
Unit: bytes
Label: Bytes
SUnreclaim - 通过slab分配的内存中不可回收的部分 /proc/meminfo SUnreclaim
metrics:
node_memory_SUnreclaim_bytes{instance=~"$node:$port",job=~"$job"}
SReclaimable - 通过slab分配的内存中可回收的部分 /proc/meminfo SReclaimable
metrics:
node_memory_SReclaimable_bytes{instance=~"$node:$port",job=~"$job"}
7. Memory Vmalloc
type: Graph
Unit: bytes
Label: Bytes
VmallocChunk - vmalloc 可分配的最大的逻辑连续的内存大小 /proc/meminfo VmallocChunk
metrics:
node_memory_VmallocChunk_bytes{instance=~"$node:$port",job=~"$job"}
VmallocTotal - vmalloc 可使用的总内存大小 /proc/meminfo VmallocTotal
metrics:
node_memory_VmallocTotal_bytes{instance=~"$node:$port",job=~"$job"}
VmallocUsed - vmalloc 已用的总内存大小 /proc/meminfo VmallocUsed
metrics:
node_memory_VmallocUsed_bytes{instance=~"$node:$port",job=~"$job"}
8. Memory Bounce /proc/meminfo Bounce
type: Graph
Unit: bytes
Label: Bytes
Bounce - bounce buffers 占用的内存
metrics:
node_memory_Bounce_bytes{instance=~"$node:$port",job=~"$job"}
9. Memory Anonymous
type: Graph
Unit: bytes
Label: Bytes
AnonHugePages - AnonHugePages 占用的内存大小 /proc/meminfo AnonHugePages
metrics:
node_memory_AnonHugePages_bytes{instance=~"$node:$port",job=~"$job"}
AnonPages - 用户进程中匿名内存页大小 /proc/meminfo AnonPages
metrics:
node_memory_AnonPages_bytes{instance=~"$node:$port",job=~"$job"}
10. Memory Kernel /proc/meminfo KernelStack
type: Graph
Unit: bytes
Label: Bytes
KernelStack - 内核栈大小(常驻内存,不可回收)
metrics:
node_memory_KernelStack_bytes{instance=~"$node:$port",job=~"$job"}
11. Memory HugePages Counter
type: Graph
Unit: short
Label: Pages
HugePages_Free - 系统当前总共拥有的空闲 HugePages 数目 /proc/meminfo HugePages_Free
metrics:
node_memory_HugePages_Free{instance=~"$node:$port",job=~"$job"}
HugePages_Rsvd - 系统当前总共保留的HugePages数目,更具体点就是指程序已经向系统申请,但是由于程序还没有实质的HugePages读写操作,因此系统尚未实际分配给程序的HugePages数目 /proc/meminfo HugePages_Rsvd
metrics:
node_memory_HugePages_Rsvd{instance=~"$node:$port",job=~"$job"}
HugePages_Surp - 指超过系统设定的常驻HugePages数目的数目 /proc/meminfo HugePages_Surp
metrics:
node_memory_HugePages_Surp{instance=~"$node:$port",job=~"$job"}
12. Memory HugePages Size
type: Graph
Unit: bytes
Label: Bytes
HugePages - 系统当前总共拥有的HugePages数目 /proc/meminfo HugePages
metrics:
node_memory_HugePages_Total{instance=~"$node:$port",job=~"$job"}
Hugepagesize - 每一页 HugePages 的大小 /proc/meminfo Hugepagesize
metrics:
node_memory_Hugepagesize_bytes{instance=~"$node:$port",job=~"$job"}
13. Memory DirectMap /proc/meminfo DirectMap
type: Graph
Unit: bytes
Label: Bytes
DirectMap1G - 映射为 1G 的内存页的内存数量
metrics:
node_memory_DirectMap1G{instance=~"$node:$port",job=~"$job"}
DirectMap2M - 映射为 2M 的内存页的内存数量
metrics:
node_memory_DirectMap2M_bytes{instance=~"$node:$port",job=~"$job"}
DirectMap4K - 映射为 4kB 的内存页的内存数量
metrics:
node_memory_DirectMap4k_bytes{instance=~"$node:$port",job=~"$job"}
14. Memory Unevictable and MLocked
type: Graph
Unit: bytes
Label: Bytes
Unevictable - 不可被回收的内存 /proc/meminfo Unevictable
metrics:
node_memory_Unevictable_bytes{instance=~"$node:$port",job=~"$job"}
MLocked - 被mlock()系统调用锁定的内存大小 /proc/meminfo MLocked
metrics:
node_memory_Mlocked_bytes{instance=~"$node:$port",job=~"$job"}
15. Memory NFS /proc/meminfo NFS_Unstable
type: Graph
Unit: bytes
Label: Bytes
NFS Unstable - 发给NFS server但尚未写入硬盘的缓存页
metrics:
node_memory_NFS_Unstable_bytes{instance=~"$node:$port",job=~"$job"}