Linux 内核 内存管理Linux 内核内存布局 ② ( x86_64 架构体系内存分布 | 查看 /proc/meminfo 文件 | /proc/meminfo 重要字段解析 )

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 内核 内存管理Linux 内核内存布局 ② ( x86_64 架构体系内存分布 | 查看 /proc/meminfo 文件 | /proc/meminfo 重要字段解析 )相关的知识,希望对你有一定的参考价值。

文章目录





一、查看 x86_64 架构体系内存分布



执行

cat /proc/meminfo

命令 , 可以查看 " x86_64 架构体系内存分布 " ;


执行结果参考 :

root@ubuntu:~/kernel/linux-5.6.14# cat /proc/meminfo 
MemTotal:        4001788 kB
MemFree:         2312852 kB
MemAvailable:    3009516 kB
Buffers:           56496 kB
Cached:           824888 kB
SwapCached:            0 kB
Active:          1021364 kB
Inactive:         352536 kB
Active(anon):     493520 kB
Inactive(anon):    17780 kB
Active(file):     527844 kB
Inactive(file):   334756 kB
Unevictable:          48 kB
Mlocked:              48 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:        492572 kB
Mapped:           191348 kB
Shmem:             18780 kB
KReclaimable:      73904 kB
Slab:             139800 kB
SReclaimable:      73904 kB
SUnreclaim:        65896 kB
KernelStack:        9568 kB
PageTables:        25556 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     2000892 kB
Committed_AS:    3094012 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       21440 kB
VmallocChunk:          0 kB
Percpu:            37376 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
FileHugePages:         0 kB
FilePmdMapped:         0 kB
CmaTotal:              0 kB
CmaFree:               0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB
DirectMap4k:      159552 kB
DirectMap2M:     2985984 kB
DirectMap1G:     3145728 kB
root@ubuntu:~/kernel/linux-5.6.14# 




二、/proc/meminfo 重要字段解析



/proc/meminfo 重要字段解析 :

  • MemTotal: 4001788 kB 可用 " 内存空间 " 大小
  • MemFree: 2312852 kB 空余内存 , 这些内存还没有使用
  • MemAvailable: 3009516 kB 真正可用的内存 , 比 MemFree 大一些 , 这是因为一些内存虽然已经使用了 , 但是可以回收 ;
  • Buffers: 56496 kB 为 " 块设备 " 做缓存的内存空间大小
  • Cached: 824888 kB 分配给 " 文件缓冲区 " 的内存空间大小
  • SwapCached: 0 kB " 高速缓存 " 的 " 交换空间 " 大小
  • Active: 1021364 kB " 高速缓存 " 页面文件大小
  • Inactive: 352536 kB 不经常使用的 " 高速缓存 " 页面文件大小
  • Active(anon): 493520 kB 活跃的 " 匿名内存 "
  • Inactive(anon): 17780 kB 不活跃的 " 匿名内存 "
  • Active(file): 527844 kB 活跃文件使用的内存
  • Inactive(file): 334756 kB 不活跃文件使用的内存
  • Unevictable: 48 kB 不可释放的内存页
  • Mlocked: 48 kB 允许程序在 " 物理内存 " 上 锁住 " 地址空间 "
  • SwapTotal: 0 kB 交换空间总内存大小
  • SwapFree: 0 kB 交换空间空闲的内存大小
  • Dirty: 0 kB 等待被写回到磁盘的内存大小
  • Writeback: 0 kB 正在被写的内存大小
  • AnonPages: 492572 kB " 未映射页 " 的内存 映射到 " 用户空间 " 后的 页表大小
  • Mapped: 191348 kB " 映射文件 " 内存大小
  • Shmem: 18780 kB 已分配完毕的 " 共享内存 "
  • KReclaimable: 73904 kB 可回收的 Slab 内存
  • Slab: 139800 kB 内存 " 数据结构 " 缓存大小
  • CommitLimit: 2000892 kB 系统 可分配内存 大小
  • Committed_AS: 3094012 kB 系统 已经分配的内存 大小
  • VmallocTotal: 34359738367 kB 预留的 " 虚拟内存 " 总量大小
  • VmallocUsed: 21440 kB 已经使用的 " 虚拟内存 "
  • VmallocChunk: 0 kB 可分配的 最大的 " 逻辑地址连续 " 的 " 虚拟内存 "

以上是关于Linux 内核 内存管理Linux 内核内存布局 ② ( x86_64 架构体系内存分布 | 查看 /proc/meminfo 文件 | /proc/meminfo 重要字段解析 )的主要内容,如果未能解决你的问题,请参考以下文章

Linux 内核内存布局与堆管理

Linux 内核 内存管理Linux 内核内存布局 ① ( 查看 Linux 操作系统位数 | 查看 Linux 操作系统软硬件信息 )

Linux 内核 内存管理Linux 内核内存布局 ④ ( ARM64 架构体系内存分布 | 内核启动源码 start_kernel | 内存初始化 mm_init | mem_init )

Linux 内核 内存管理Linux 内核内存布局 ④ ( ARM64 架构体系内存分布 | 内核启动源码 start_kernel | 内存初始化 mm_init | mem_init )

Linux 内核 内存管理Linux 内核内存布局 ② ( x86_64 架构体系内存分布 | 查看 /proc/meminfo 文件 | /proc/meminfo 重要字段解析 )

内存管理:一文读懂Linux内存组织结构及页面布局