MemTotal: 1497696 kB Memtotal = MemFree + Buffers + CachedMemFree: 590524 kBMemAvailable: 773252 kBBuffers: 768 kBCached: 216892 kBSwapCached: 14204 kBActive: 260884 kBInactive: 176744 kBActive(anon): 120620 kBInactive(anon): 106688 kBActive(file): 140264 kBInactive(file): 70056 kBUnevictable: 3224 kBMlocked: 3224 kBSwapTotal: 748844 kB SwapTotal/SwapFree:是系统脚本中通过 swap 命令启用、分配SwapFree: 346156 kBDirty: 776 kBWriteback: 0 kBAnonPages: 220804 kBMapped: 194276 kBShmem: 4968 kBKReclaimable: 43900 kBSlab: 111060 kB Slab 当前使用大小,如果增长太大可能内存泄漏SReclaimable: 40648 kB Slab 可回收内存SUnreclaim: 70412 kB Slab 不可回收内存KernelStack: 18496 kBPageTables: 42096 kBNFS_Unstable: 0 kBBounce: 0 kBWritebackTmp: 0 kBCommitLimit: 1497692 kBCommitted_AS: 41751048 kBVmallocTotal: 263061440 kB Vmalloc 总大小VmallocUsed: 30368 kB Vmalloc 已用大小VmallocChunk: 0 kBPercpu: 2528 kBCmaTotal: 532480 kBCmaFree: 0 kB 注:CMA 被系统借用,也属于被使用,CmaFree 会减小
MemTotal: 1497696 kB Memtotal = MemFree + Buffers + Cached
MemFree: 590524 kB
MemAvailable: 773252 kB
Buffers: 768 kB
Cached: 216892 kB
SwapCached: 14204 kB
Active: 260884 kB
Inactive: 176744 kB
Active(anon): 120620 kB
Inactive(anon): 106688 kB
Active(file): 140264 kB
Inactive(file): 70056 kB
Unevictable: 3224 kB
Mlocked: 3224 kB
SwapTotal: 748844 kB SwapTotal/SwapFree:是系统脚本中通过 swap 命令启用、分配
SwapFree: 346156 kB
Dirty: 776 kB
Writeback: 0 kB
AnonPages: 220804 kB
Mapped: 194276 kB
Shmem: 4968 kB
KReclaimable: 43900 kB
Slab: 111060 kB Slab 当前使用大小,如果增长太大可能内存泄漏
SReclaimable: 40648 kB Slab 可回收内存
SUnreclaim: 70412 kB Slab 不可回收内存
KernelStack: 18496 kB
PageTables: 42096 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 1497692 kB
Committed_AS: 41751048 kB
VmallocTotal: 263061440 kB Vmalloc 总大小
VmallocUsed: 30368 kB Vmalloc 已用大小
VmallocChunk: 0 kB
Percpu: 2528 kB
CmaTotal: 532480 kB
CmaFree: 0 kB 注:CMA 被系统借用,也属于被使用,CmaFree 会减小
CONFIG_SLUB_SYSFS=yCONFIG_SLUB_DEBUG=y
CONFIG_SLUB_SYSFS=y
CONFIG_SLUB_DEBUG=y
echo `cat /proc/slabinfo |awk 'BEGIN{sum=0;}{sum=sum+$3*$4;}END{printsum/1024/1024}'` MB
echo `cat /proc/slabinfo |awk 'BEGIN{sum=0;}{sum=sum+$3*$4;}END{print
sum/1024/1024}'` MB
chosen { bootargs = "earlycon=uart8250,mmio32,0xff570000 console=ttyFIQ0memblock=debug";};
chosen {
bootargs = "earlycon=uart8250,mmio32,0xff570000 console=ttyFIQ0
memblock=debug";
};
cat /proc/zoneinfo
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
cat /proc/vmallocinfo
cat /proc/vmstat
cat /proc/pressure/memory- VSS- Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)- RSS- Resident Set Size 实际使用物理内存(包含共享库占用的内存)- PSS- Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)- USS- Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS
cat /proc/pressure/memory
- VSS- Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
- RSS- Resident Set Size 实际使用物理内存(包含共享库占用的内存)
- PSS- Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
- USS- Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS
以上就是Linux开发中最常用的内存相关命令,如果你在使用这些命令时遇到疑问,或者有其他高频内存命令补充,欢迎在评论区留言交流,一起提升调试效率!