xfs
[Top] [All Lists]

Re: XFS trouble.

To: "Brice GIBOUDEAU" <brice@xxxxxxxxxx>
Subject: Re: XFS trouble.
From: "Brice GIBOUDEAU" <brice@xxxxxxxxxx>
Date: Thu, 18 Aug 2005 11:55:09 +0200 (CEST)
Cc: "David Chinner" <dgc@xxxxxxx>, "Brice GIBOUDEAU" <brice@xxxxxxxxxx>, linux-xfs@xxxxxxxxxxx
Importance: Normal
In-reply-to: <39182.194.2.155.16.1123598505.squirrel@www.pingus.org>
References: <3761.194.2.155.29.1123053709.squirrel@www.pingus.org> <20050804090050.B21661319@melbourne.sgi.com> <3088.194.2.155.29.1123145618.squirrel@www.pingus.org> <20050805104037.A22198673@melbourne.sgi.com> <39182.194.2.155.16.1123598505.squirrel@www.pingus.org>
Sender: linux-xfs-bounce@xxxxxxxxxxx
User-agent: SquirrelMail/1.4.4
Patch is working fine, the server is stable.
Thanks for your support.

Brice GIBOUDEAU

> Hi,
>
> Thanks for all this informations.
> I'm testing an other solution, it's using a patch who increase the
> quantity of low memory.
> http://www.kernel.org/pub/linux/kernel/people/andrea/kernels/v2.4/2.4.23pre6aa3/00_3.5G-address-space-5
> http://lwn.net/Articles/39925/
>
> I will reply to this Email if the patch work correctly.
>
> Thx,
> Brice GIBOUDEAU
>
>
>
>> On Thu, Aug 04, 2005 at 10:53:38AM +0200, Brice GIBOUDEAU wrote:
>>> Hi,
>>>
>>> I give more details.
>>
>> Ta. Looks like lowmem exhaustion:
>>
>>> /proc/meminfo :
>>> ---------------
>>>
>>> Tue Aug  2 02:04:01 CEST 2005
>>>         total:    used:    free:  shared: buffers:  cached:
>>> Mem:  16966471680 15623704576 1342767104        0   180224 14847438848
>>> Swap: 32737632256        0 32737632256
>>> MemTotal:     16568820 kB
>>> MemFree:       1311296 kB
>>> MemShared:           0 kB
>>> Buffers:           176 kB
>>> Cached:       14499452 kB
>>
>> Large page cache...
>>
>>> SwapCached:          0 kB
>>> Active:           1932 kB
>>> Inactive:     14497760 kB
>>
>> Mostly inactive...
>>
>>> HighTotal:    15858532 kB
>>> HighFree:      1305552 kB
>>> LowTotal:       710288 kB
>>> LowFree:          5744 kB
>>
>> And very little low memory free.
>>
>>> LowTotal:       710288 kB
>>> LowFree:          4788 kB
>>
>> Yup, not much there at all.
>>
>>> /proc/slabinfo :
>>> ----------------
>>>
>>> Tue Aug  2 02:04:02 CEST 2005
>>> slabinfo - version: 1.1 (SMP)
>>> xfs_inode         208657 208719    408 23191 23191    1 :  124   62
>>> linvfs_icache     208700 208700    384 20870 20870    1 :  124   62
>>> buffer_head       3624879 3751050    128 125034 125035    1 :  252  126
>>
>> So we have 80MiB in xfs inodes, another 80MiB in linvfs_icache, and
>> 460MiB in buffer heads. So that's a total of 620MiB of your 700MiB
>> of low memory right there, and probably the source of the memory
>> exhaustion.
>>
>> The buffer heads are the real problem - and that's related to the
>> size of the page cache. IIRC we have at least one buffer head per
>> page. With 14499452k of page cache, that's at least 3,624,863 buffer
>> heads needed at one per page. Looks pretty close, to me.
>>
>> This does look like a highmem/lowmem reclaim issue to me - the
>> pagecache in the highmem area needs to be reclaimed to free
>> up buffer heads in the lowmem region. because there is lots
>> of free memory in the highmem region, I doubt the reclaim
>> code is freeing it up sufficiently.
>>
>> One quick thing to try is limit the machine to, say, 12GiB of RAM
>> (mem=xxx boot option) and that will limit buffer head usage to less
>> that 400MiB of low memory. That should prevent you from exhausting
>> lowmem by bounding the maximum size of the kernel pagecache at
>> a point below where lowmem exhaustion occurs.
>>
>> Another option is to go to a 2.6 kernel as, IIRC, XFS no longer
>> has the buffer-head-per-cached-page behaviour in 2.6. Hence you
>> won't consume anywhere near as much lowmem on a 2.6 kernel when
>> the kernel lets the page cache grow so large....
>>
>> Yet another option is to move to a 64bit platform that doesn't have
>> this lowmem/highmem memory architecture...
>>
>> HTH.
>>
>> Cheers,
>>
>> Dave.
>> --
>> Dave Chinner
>> R&D Software Enginner
>> SGI Australian Software Group
>>
>
>
>



<Prev in Thread] Current Thread [Next in Thread>