Linux内核(/ proc / meminfo)不报告所有内存

前端之家收集整理的这篇文章主要介绍了Linux内核(/ proc / meminfo)不报告所有内存前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
除了内核版本之外,我有两台机器在各方面都相同(硬件,分发,应用程序工作负载,/ proc / sys / vm设置等).一个是2.6.33,另一个是3.1.0.对于给定的工作负载,2.6.33机器的性能明显更好(两者都是I / O,主要是读取).我注意到3.1.0机器上的缓存/主动/主动(文件)相当小(超过20GB),并且似乎没有考虑报告的任何其他指标.事实证明3.1.0机器上发生了更多的读取(由于可能的页面缓存可用内存较少).我已经看过每个可调参数,/ proc / buddyinfo用于碎片,/ proc / slabinfo用于slab使用(使用几GB以上,但不是~20GB),并且没有任何东西看起来.任何想法将不胜感激.

这是来自运行2.6.33内核的机器,事情看起来很正常.

> cat /proc/meminfo
MemTotal:       74372248 kB
MemFree:          200492 kB
Buffers:            2976 kB
Cached:         65324256 kB
SwapCached:            0 kB
Active:         32949324 kB
Inactive:       32689844 kB
Active(anon):     287904 kB
Inactive(anon):    27272 kB
Active(file):   32661420 kB
Inactive(file): 32662572 kB
Unevictable:       19832 kB
Mlocked:           19832 kB
SwapTotal:       8393952 kB
SwapFree:        8393952 kB
Dirty:              8324 kB
Writeback:             0 kB
AnonPages:        332036 kB
Mapped:            12576 kB
Shmem:               304 kB
Slab:            8217640 kB
SReclaimable:    7859644 kB
SUnreclaim:       357996 kB
KernelStack:        4592 kB
PageTables:        10652 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    45580076 kB
Committed_AS:     934328 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      314652 kB
VmallocChunk:   34359294955 kB
HardwareCorrupted:     0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:        6384 kB
DirectMap2M:     2080768 kB
DirectMap1G:    73400320 kB

这是从运行3.1.0内核的机器.请注意,缓存/活动大小小于20G,似乎不在任何其他指标中.

> cat /proc/meminfo
MemTotal:       74370628 kB
MemFree:          415680 kB
Buffers:          384916 kB
Cached:         42088392 kB
SwapCached:            0 kB
Active:          5636160 kB
Inactive:       37170092 kB
Active(anon):     300656 kB
Inactive(anon):    36620 kB
Active(file):    5335504 kB
Inactive(file): 37133472 kB
Unevictable:       19880 kB
Mlocked:            7616 kB
SwapTotal:       8393956 kB
SwapFree:        8393956 kB
Dirty:              6524 kB
Writeback:             0 kB
AnonPages:        354084 kB
Mapped:            14588 kB
Shmem:               472 kB
Slab:           11419580 kB
SReclaimable:    9835632 kB
SUnreclaim:      1583948 kB
KernelStack:        2944 kB
PageTables:        12084 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    45579268 kB
Committed_AS:    1006028 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      290448 kB
VmallocChunk:   34321698548 kB
HardwareCorrupted:     0 kB
AnonHugePages:    135168 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      100592 kB
DirectMap2M:     6180864 kB
DirectMap1G:    69206016 kB

解决方法

事实证明,XFS元数据缓冲区正在使用内存.他们从内核页面缓存移动到2.6.39内核中的XFS特定缓冲区.可以在此处找到更改行为的补丁:

http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=0e6e847ffe37436e331c132639f9f872febce82e

性能差异是由于XFS更改导致文件数据和元数据缓存之间的不同平衡.

猜你在找的Linux相关文章