proc文件系统漫谈

1. /proc/buddyinfo:
/proc/buddyinfo是linuxbuddy系统管理物理内存的debug信息。

在linux中使用buddy算法解决物理内存的外碎片问题,其把所有空闲的内存,以2的幂次方的形式,分成11个块链表,
分别对应为1、2、4、8、16、32、64、128、256、512、1024个页块

而Linux支持NUMA技术,对于NUMA设备,NUMA系统的结点通常是由一组CPU和本地内存组成,每一个节点都有相应的本
地内存,因此buddyinfo 中的Node0表示节点ID;而每一个节点下的内存设备,又可以划分为多个内存区域(zone),
因此下面的显示中,对于Node0的内存,又划分类DMA、Normal、HighMem区域。而后面则是表示空闲的区域。

此处以Normal区域进行分析,第二列值为100,表示当前系统中normal区域,可用的连续两页的内存大小为100*2*PAGE_SIZE;
第三列值为52,表示当前系统中normal区域,可用的连续四页的内存大小为52*2^2*PAGE_SIZE

cat /proc/buddyinfo
Node 0, zone DMA         23   15    4    5   2   3    3   2   3   1   0
Node 0, zone Normal    149   100 52  33 23  5   32  8  12  2   59
Node 0, zone HighMem 11     21   23  49 29 15  8   16 12  2  142

2. /proc/meminfo:
cat /proc/meminfo这个命令,这个命令其实跟“free -m”这个命令差不多的,只是得出来的信息更详细

root@vpsroll:~# cat /proc/meminfo  
MemTotal: 262144 kB  
MemFree: 237904 kB  
Cached: 10540 kB  
Active: 10220 kB  
Inactive: 7004 kB  
Active(anon): 6608 kB  
Inactive(anon): 76 kB  
Active(file): 3612 kB  
Inactive(file): 6928 kB  
Unevictable: 0 kB  
Mlocked: 0 kB  
SwapTotal: 524288 kB  
SwapFree: 524288 kB  
Dirty: 0 kB  
Writeback: 0 kB  
AnonPages: 6684 kB  
Shmem: 2632 kB  
Slab: 6972 kB  
SReclaimable: 4288 kB  
SUnreclaim: 2684 kB  

MemTotal: 所有可用RAM大小(即物理内存减去一些预留位和内核的二进制代码大小)
MemFree: LowFree与HighFree的总和,被系统留着未使用的内存
Buffers: 用来给文件做缓冲大小
Cached: 被高速缓冲存储器(cache memory)用的内存的大小(等于 diskcache minus SwapCache ).
SwapCached:被高速缓冲存储器(cache memory)用的交换空间的大小,已经被交换出来的内存,但仍然被存放在swapfile中。
用来在需要的时候很快的被替换而不需要再次打开I/O端口。
Active: 在活跃使用中的缓冲或高速缓冲存储器页面文件的大小,除非非常必要否则不会被移作他用.
Inactive: 在不经常使用中的缓冲或高速缓冲存储器页面文件的大小,可能被用于其他途径.
HighTotal:
HighFree: 该区域不是直接映射到内核空间。内核必须使用不同的手法使用该段内存。
LowTotal:
LowFree: 低位可以达到高位内存一样的作用,而且它还能够被内核用来记录一些自己的数据结构。在许多其他事情中,
这是Slab分配的所有内容。 糟糕的事情发生在你超出低端内存的时候。
SwapTotal: 交换空间的总大小
SwapFree: 未被使用交换空间的大小
Dirty: 等待被写回到磁盘的内存大小。
Writeback: 正在被写回到磁盘的内存大小。
AnonPages:未映射页的内存大小
Mapped: 设备和文件等映射的大小。
Slab: 内核数据结构缓存的大小,可以减少申请和释放内存带来的消耗。
SReclaimable:可收回Slab的大小
SUnreclaim:不可收回Slab的大小(SUnreclaim+SReclaimable=Slab)
PageTables:管理内存分页页面的索引表的大小。
NFS_Unstable:不稳定页表的大小
VmallocTotal: 可以vmalloc虚拟内存大小
VmallocUsed: 已经被使用的虚拟内存大小。
VmallocChunk: vmalloc区域的可用的最大的连续块

https://www.cnblogs.com/tcicy/p/8299573.html

https://www.sogou.com/link?url=DOb0bgH2eKg7Sf-koBXrEidQRoztLvNXCquHaNrIZCGK6x5wQqf_qNC6QghyI0Ya0ztd7q5nl6o.

猜你喜欢

转载自www.cnblogs.com/hellokitty2/p/9000653.html