除了内核版本之外,我有两台机器在各方面都相同(硬件,分发,应用程序工作负载,/ 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特定缓冲区.可以在此处找到更改行为的补丁: