在阅读自由的命令。我发现它从/proc/meminfo.
我理解其中几个条目,例如MemTotal
和MemFree
。其余的是什么意思。
猫/proc/meminfo 内存总量:3973736 kB 可用内存:431064 kB 缓冲区:46604 kB 缓存:494648 kB 交换缓存:11360 kB 活动:2322760 kB 不活动:933028 kB 活跃(匿名):2057952 kB 不活跃(匿名):679956 kB 活动(文件):264808 kB 不活动(文件):253072 kB 不可清除:16 kB 锁定:16 kB 交换总量:4096568 kB 免交换:3961748 kB 脏:236 kB 回写:0 kB 匿名页面:2704520 kB 映射:182240 kB 内存:23372 kB 板坯:93848 kB 可回收:52044 kB 取消回收:41804 kB 内核堆栈:5064 kB 页表:64928 kB NFS_不稳定:0 kB 跳出率:0 kB 回写时间:0 kB 提交限制:6083436 kB 已提交的 AS:7327800 kB Vmalloc总计:34359738367 kB Vmalloc已用:321156 kB VmallocChunk:34359411708 kB 硬件损坏:0 kB AnonHugePages:0 kB 大页面总数:0 HugePages_Free:0 HugePages_Rsvd:0 HugePages_Surp:0 大页面大小:2048 kB DirectMap4k:225280 kB DirectMap2M:3895296 kB
答案1
我从 CentOS 文档中获得以下内容:
这里的大部分信息由
free
、top
和ps
命令使用。实际上,free
命令的输出在外观上与 的内容和结构类似/proc/meminfo
。但通过直接查看/proc/meminfo
,可以揭示更多细节:MemTotal — 物理 RAM 总量,以千字节为单位。
MemFree — 系统未使用的物理 RAM 数量(以千字节为单位)。
缓冲区 — 用于文件缓冲区的物理 RAM 数量(以千字节为单位)。
缓存 — 用作缓存内存的物理 RAM 量(以千字节为单位)。
SwapCached — 用作缓存的交换量(以千字节为单位)。
活动 — 正在使用的缓冲区或页面缓存内存总量(以千字节为单位)。这些内存最近被使用过,通常不会回收用于其他用途。
非活动 — 空闲且可用的缓冲区或页面缓存内存总量(以千字节为单位)。这些内存最近未使用,可以回收用于其他用途。
HighTotal 和 HighFree — 未直接映射到内核空间的总内存量和可用内存量(以千字节为单位)。HighTotal 值可能因所用内核的类型而异。
LowTotal 和 LowFree — 直接映射到内核空间的总内存量和可用内存量(以千字节为单位)。LowTotal 值可能因所用内核的类型而异。
SwapTotal — 可用的交换总量(以千字节为单位)。
SwapFree — 可用交换空间总量,以千字节为单位。
脏 — 等待写回磁盘的内存总量(以千字节为单位)。
写回 — 主动写回磁盘的内存总量(以千字节为单位)。
已映射 — 使用该命令映射设备、文件或库的总内存量(以千字节为单位)
mmap
。Slab — 内核用来缓存数据结构以供自己使用的内存总量(以千字节为单位)。
Committed_AS — 预计完成工作负载所需的内存总量(以千字节为单位)。此值表示最坏情况的值,还包括交换内存。
页表 — 专用于最低页表级别的内存总量(以千字节为单位)。
VMallocTotal — 已分配虚拟地址空间的总内存量(以千字节为单位)。
VMallocUsed — 已使用的虚拟地址空间的内存总量(以千字节为单位)。
VMallocChunk — 可用虚拟地址空间的最大连续内存块(以千字节为单位)。
HugePages_Total — 系统的大页面总数。该数字是通过将 Hugepagesize 除以 中指定的大页面预留的兆字节数得出的
/proc/sys/vm/hugetlb_pool
。该统计数据仅出现在 x86、Itanium 和 AMD64 架构上。HugePages_Free — 系统可用的大页面总数。该统计数据仅出现在 x86、Itanium 和 AMD64 架构上。
Hugepagesize — 每个大页面单元的大小(以千字节为单位)。默认情况下,对于 32 位架构,单处理器内核的值为 4096 KB。对于 SMP、hugemem 内核和 AMD64,默认值为 2048 KB。对于 Itanium 架构,默认值为 262144 KB。该统计数据仅出现在 x86、Itanium 和 AMD64 架构上。
这些文章对以下信息进行了很好的解释/proc/meminfo
:
答案2
关于“kB”大小的重要说明:
虽然文件显示的单位是千字节 (kB;1 kB 等于 1000 B),但实际单位是千比字节 (KiB;1 KiB 等于 1024 B)。已知这种不精确性
/proc/meminfo
,但由于遗留问题而未予以纠正 - 程序依赖于/proc/meminfo
使用“kB”字符串指定大小。