以下是我们公司生产mysql服务器meminfo文件内容

MemTotal:       32780448 kB
MemFree:        25345800 kB
MemAvailable:   31372308 kB
Buffers:          195432 kB
Cached:          5915592 kB
SwapCached:            0 kB
Active:          4270036 kB
Inactive:        2598928 kB
Active(anon):     758532 kB
Inactive(anon):      812 kB
Active(file):    3511504 kB
Inactive(file):  2598116 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:               464 kB
Writeback:             0 kB
AnonPages:        757972 kB
Mapped:            68796 kB
Shmem:              1408 kB
Slab:             345444 kB
SReclaimable:     319712 kB
SUnreclaim:        25732 kB
KernelStack:        3328 kB
PageTables:         7552 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    16390224 kB
Committed_AS:    4062988 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       61684 kB
VmallocChunk:   34359666428 kB
HardwareCorrupted:     0 kB
AnonHugePages:    649216 kB
CmaTotal:              0 kB
CmaFree:               0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       81776 kB
DirectMap2M:     5160960 kB
DirectMap1G:    30408704 kB

MemTotal:所有可用的内存大小,物理内存减去预留位和内核使用。系统从加电开始到引导完成,firmware/BIOS要预留一些内存,内核本身要占用一些内存,最后剩下可供内核支配的内存就是MemTotal。这个值在系统运行期间一般是固定不变的,重启会改变。


MemFree:表示系统尚未使用的内存。


MemAvailable:真正的系统可用内存,系统中有些内存虽然已被使用但是可以回收的,比如cache/buffer、slab都有一部分可以回收,所以这部分可回收的内存加上MemFree才是系统可用的内存


Buffers:用来给块设备做缓存的内存,(文件系统的 metadata、pages)


Cached:分配给文件缓冲区的内存,例如vi一个文件,就会将未保存的内容写到该缓冲区


SwapCached:被高速缓冲存储用的交换空间(硬盘的swap)的大小


active:经常使用的高速缓冲存储器页面文件大小


Inactive:不经常使用的高速缓冲存储器文件大小


Active(anon):活跃的匿名内存


Inactive(anon):不活跃的匿名内存


Active(file):活跃的文件使用内存


Inactive(file):不活跃的文件使用内存


Unevictable:不能被释放的内存页


Mlocked:系统调用 mlock 家族允许程序在物理内存上锁住它的部分或全部地址空间。这将阻止Linux 将这个内存页调度到交换空间(swap space),即使该程序已有一段时间没有访问这段空间


SwapTotal:交换空间总内存


SwapFree:交换空间空闲内存


Dirty:等待被写回到磁盘的


Writeback:正在被写回的


AnonPages:未映射页的内存/映射到用户空间的非文件页表大小


Mapped:映射文件内存


Shmem:已经被分配的共享内存


Slab:内核数据结构缓存


SReclaimable:可收回slab内存


SUnreclaim:不可收回slab内存


KernelStack:内核消耗的内存


PageTables:管理内存分页的索引表的大小


NFS_Unstable:不稳定页表的大小


Bounce:在低端内存中分配一个临时buffer作为跳转,把位于高端内存的缓存数据复制到此处消耗的内存


WritebackTmp:FUSE用于临时写回缓冲区的内存


CommitLimit:系统实际可分配内存


Committed_AS:系统当前已分配的内存


VmallocTotal:预留的虚拟内存总量


VmallocUsed:已经被使用的虚拟内存


VmallocChunk:可分配的最大的逻辑连续的虚拟内存


HardwareCorrupted:当系统检测到内存的硬件故障时删除掉的内存页的总量


AnonHugePages:匿名大页缓存


CmaTotal:连续可用内存总量


CmaFree:空闲连续可用内存


HugePages_Total:预留的大页内存总量


HugePages_Free:空闲的大页内存


HugePages_Rsvd:已经被应用程序分配但尚未使用的大页内存


HugePages_Surp:初始大页数与修改配置后大页数的差值


Hugepagesize:单个大页内存的大小


DirectMap4k:映射TLB为4kB的内存数量


DirectMap2M:映射TLB为2M的内存数量


DirectMap1G:映射TLB为1G的内存数量


文档参照https://blog.csdn.net/weixin_44367463/article/details/104005016,然后自己又做了相应的修改和完善,增加了自己的见解,提高了易读性