1.车机原始数据

1
cat /proc/meminfo

以上指令可以打印内存信息如下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
MemTotal:        6266692 kB  // 所有可用的内存大小,物理内存减去预留位和内核使用。系统从加电开始到引导完成,firmware/BIOS要预留一些内存,内核本身要占用一些内存,最后剩下可供内核支配的内存就是MemTotal。这个值在系统运行期间一般是固定不变的,重启会改变。
MemFree: 1836516 kB //表示系统尚未使用的内存。
MemAvailable: 3738928 kB //真正的系统可用内存,系统中有些内存虽然已被使用但是可以回收的,比如cache/buffer、slab都有一部分可以回收,所以这部分可回收的内存加上MemFree才是系统可用的内存
Buffers: 67152 kB //用来给块设备做缓存的内存,(文件系统的 metadata、pages)
Cached: 1793152 kB //分配给文件缓冲区的内存,例如vi一个文件,就会将未保存的内容写到该缓冲区
SwapCached: 0 kB //被高速缓冲存储用的交换空间(硬盘的swap)的大小
Active: 1996864 kB //经常使用的高速缓冲存储器页面文件大小
Inactive: 1430604 kB //不经常使用的高速缓冲存储器文件大小
Active(anon): 1569732 kB //活跃的匿名内存
Inactive(anon): 1604 kB //不活跃的匿名内存
Active(file): 427132 kB //活跃的文件使用内存
Inactive(file): 1429000 kB //不活跃的文件使用内存
Unevictable: 2876 kB //不能被释放的内存页
Mlocked: 2876 kB //系统调用 mlock 家族允许程序在物理内存上锁住它的部分或全部地址空间。这将阻止Linux 将这个内存页调度到交换空间(swap space),即使该程序已有一段时间没有访问这段空间
SwapTotal: 0 kB //交换空间总内存
SwapFree: 0 kB //交换空间空闲内存
Dirty: 900 kB //等待被写回到磁盘的
Writeback: 0 kB //正在被写回的
AnonPages: 1569960 kB //未映射页的内存/映射到用户空间的非文件页表大小
Mapped: 952644 kB //映射文件内存
Shmem: 1896 kB //已经被分配的共享内存
Slab: 270360 kB //内核数据结构缓存
SReclaimable: 98248 kB //可收回slab内存
SUnreclaim: 172112 kB //不可收回slab内存
KernelStack: 51008 kB //内核消耗的内存
PageTables: 72332 kB //管理内存分页的索引表的大小
NFS_Unstable: 0 kB //不稳定页表的大小
Bounce: 0 kB //在低端内存中分配一个临时buffer作为跳转,把位于高端内存的缓存数据复制到此处消耗的内存
WritebackTmp: 0 kB //FUSE用于临时写回缓冲区的内存
CommitLimit: 3133344 kB //系统实际可分配内存
Committed_AS: 174521232 kB //系统当前已分配的内存
VmallocTotal: 263061440 kB //预留的虚拟内存总量
VmallocUsed: 138388 kB //已经被使用的虚拟内存
VmallocChunk: 0 kB //可分配的最大的逻辑连续的虚拟内存
CmaTotal: 401408 kB
CmaFree: 397656 kB