高通8295设备
msmnile_gvmq:/proc # cat meminfo
MemTotal: 16433968 kB
MemFree: 7709832 kB
MemAvailable: 10764408 kB
Buffers: 34348 kB
Cached: 2683036 kB
SwapCached: 0 kB
Active: 2195496 kB
Inactive: 2489716 kB
Active(anon): 1971488 kB
Inactive(anon): 6088 kB
Active(file): 224008 kB
Inactive(file): 2483628 kB
Unevictable: 3276 kB
Mlocked: 3276 kB
SwapTotal: 4194300 kB
SwapFree: 4194300 kB
Dirty: 9376 kB
Writeback: 0 kB
AnonPages: 1971236 kB
Mapped: 1958752 kB
Shmem: 7192 kB
KReclaimable: 478572 kB
Slab: 959224 kB
SReclaimable: 312736 kB
SUnreclaim: 646488 kB
KernelStack: 27440 kB
ShadowCallStack: 6864 kB
PageTables: 64164 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 12411284 kB
Committed_AS: 77178892 kB
VmallocTotal: 262930368 kB
VmallocUsed: 314424 kB
VmallocChunk: 0 kB
Percpu: 22464 kB
CmaTotal: 311296 kB
CmaFree: 0 kB
/proc/meminfo 参数分析
该表格适用于系统调试和内存优化时快速参考。
字段 | 数值 | 专业解释 | 通俗意义与实际作用 |
---|---|---|---|
MemTotal | 16,433,968 kB | 系统物理内存总量。 | 表示设备中总的RAM容量。 |
MemFree | 7,709,832 kB | 当前完全未被使用且未被缓存的内存。 | 表示剩余未分配的内存,数值高说明当前内存资源充足。 |
MemAvailable | 10,764,408 kB | 估计在不引起OOM的情况下,应用可用的内存(包括空闲内存及可快速回收的缓存)。 | 表示应用实际可用内存的大小,越高越好。 |
Buffers | 34,348 kB | 内核用于块设备缓冲的内存。 | 用于临时存储磁盘数据,不算作应用可用内存。 |
Cached | 2,683,036 kB | 文件系统缓存的内存(不包括Buffers),用于加速文件I/O。 | 用于缓存文件数据,加快文件读取速度;内存紧张时可以回收。 |
SwapCached | 0 kB | 已被交换出去但仍留在内存中的swap缓存页数量。 | 当前无缓存的swap数据,说明重复占用内存的情况不存在。 |
Active | 2,195,496 kB | 最近被频繁访问的内存页总量。 | 表示当前活跃使用的数据页。 |
Inactive | 2,489,716 kB | 最近未被频繁访问的内存页总量。 | 表示长时间未使用的数据页,可作为回收候选。 |
Active(anon) | 1,971,488 kB | 活跃的匿名内存页数量(应用动态分配的内存)。 | 代表应用运行时占用的内存量(不含文件缓存)。 |
Inactive(anon) | 6,088 kB | 不活跃的匿名内存页数量。 | 表示应用私有数据中较少部分长时间未被访问。 |
Active(file) | 224,008 kB | 活跃的文件页数量(文件缓存中近期被访问的数据)。 | 反映最近频繁访问的文件数据,有助于文件I/O性能。 |
Inactive(file) | 2,483,628 kB | 不活跃的文件页数量。 | 大量未被访问的文件缓存页,可在内存紧张时释放。 |
Unevictable | 3,276 kB | 被标记为不可回收的内存页(例如被锁定或特殊用途)。 | 表示不允许回收的内存数据,数值较低较理想。 |
Mlocked | 3,276 kB | 被 mlock() 系统调用锁定的内存,与 Unevictable 相同。 | 表示被锁定在内存中的页,不允许换出,通常仅用于特殊应用。 |
SwapTotal | 4,194,300 kB | 交换空间的总容量。 | 表示系统为内存不足时预留的swap空间大小。 |
SwapFree | 4,194,300 kB | 当前未被使用的交换空间容量。 | 当前swap完全未使用,说明内存充足。 |
Dirty | 9,376 kB | 等待写回到磁盘的脏页数据量。 | 表示内存中被修改但尚未同步到存储的数据量,数值较低为正常。 |
Writeback | 0 kB | 当前正在写回到磁盘的脏页数据量。 | 表示无活跃写回操作,磁盘I/O压力低。 |
AnonPages | 1,971,236 kB | 进程匿名内存页总量,与Active(anon)和Inactive(anon)的总和相近。 | 表示应用进程占用的私有内存总量。 |
Mapped | 1,958,752 kB | 通过内存映射(mmap)分配的内存页总量。 | 包括文件映射和共享内存,反映应用使用mmap机制的规模。 |
Shmem | 7,192 kB | 用于共享内存(如tmpfs、ashmem)的内存页数量。 | 反映系统共享内存的占用情况,数值较低通常正常。 |
KReclaimable | 478,572 kB | 内核slab缓存中可回收部分的内存。 | 反映内核缓存中可以在内存紧张时回收的内存量。 |
Slab | 959,224 kB | 内核slab缓存总量,包括可回收与不可回收部分。 | 表示内核用于缓存数据结构(如inode、dentry等)的内存占用,数值较高时需评估内存使用情况。 |
SReclaimable | 312,736 kB | 可回收的slab内存(属于KReclaimable的一部分)。 | 表示可释放的内核缓存量,有助于内存压力下的内存回收。 |
SUnreclaim | 646,488 kB | 不可回收的slab内存,内核固定保留部分。 | 表示必须长期保留的内核缓存,不影响可用内存。 |
KernelStack | 27,440 kB | 内核栈占用的内存总量,为每个内核线程分配的固定栈空间。 | 反映内核线程的数量及栈大小,通常占用较少。 |
ShadowCallStack | 6,864 kB | 内核影子调用栈占用的内存,主要用于额外安全检查。 | 提供内核安全机制支持,占用内存较小。 |
PageTables | 64,164 kB | 存储页表数据的内存量,用于管理进程虚拟地址到物理地址的映射。 | 反映所有进程页表占用的内存大小,进程越多该值越高。 |
NFS_Unstable | 0 kB | NFS挂载时不稳定数据的内存页数量。 | 对本地系统无影响,通常为0。 |
Bounce | 0 kB | Bounce缓冲区占用的内存,通常用于老旧设备DMA中转。 | 一般现代设备不使用,通常为0。 |
WritebackTmp | 0 kB | 临时写回缓存的内存量。 | 通常为0。 |
CommitLimit | 12,411,284 kB | 理论上可提交内存的上限(RAM+Swap减去保留部分)。 | 表示系统理论上最多能分配的内存量,帮助防止过度承诺。 |
Committed_AS | 77,178,892 kB | 当前所有进程已承诺(虚拟)的内存总量,不代表实际使用。 | 反映进程虚拟内存的总和,数值通常远大于物理内存,注意是否存在内存泄漏风险。 |
VmallocTotal | 262,930,368 kB | 内核vmalloc区域总大小,即可分配的虚拟内存总量。 | 表示内核可用的虚拟地址空间,一般不直接影响应用。 |
VmallocUsed | 314,424 kB | 当前已使用的vmalloc内存量。 | 数值较小,说明内核vmalloc使用正常。 |
VmallocChunk | 0 kB | 可分配的最大连续vmalloc区域。 | 数值为0表示当前没有足够大的一块连续空闲区域,但一般不影响系统。 |
Percpu | 22,464 kB | 每个CPU私有内存区域总量。 | 显示每个CPU核心分配的内存,通常占用较少。 |
CmaTotal | 311,296 kB | CMA区域总量(用于连续内存分配)。 | 用于要求连续物理内存的设备驱动,如摄像头或视频解码。 |
CmaFree | 0 kB | 当前CMA区域空闲内存量。 | 显示CMA区域已全部分配,可能表明相关设备当前正在使用连续内存;在部分场景下,CMA不足可能影响硬件正常工作。 |