[Top] [All Lists]

Re: mkfs.xfs error creating large agcount an raid

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: mkfs.xfs error creating large agcount an raid
From: Stan Hoeppner <stan@xxxxxxxxxxxxxxxxx>
Date: Sun, 26 Jun 2011 22:33:27 -0500
Cc: Marcus Pereira <marcus@xxxxxxxxxxx>, linux-xfs@xxxxxxxxxxx
In-reply-to: <20110626235959.GC32466@dastard>
References: <4E063BC6.9000801@xxxxxxxxxxx> <4E0694CC.8050003@xxxxxxxxxxxxxxxxx> <4E06C967.2060107@xxxxxxxxxxx> <20110626235959.GC32466@dastard>
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv: Gecko/20110616 Thunderbird/3.1.11
On 6/26/2011 6:59 PM, Dave Chinner wrote:
> On Sun, Jun 26, 2011 at 02:53:43AM -0300, Marcus Pereira wrote:

>> There is already insane head seeking at this server, hundreds of
>> simultaneous users reading their mailboxes.

I missed this part of the reply probably due to the reply formatting
style used.

> Perhaps you should just usethe defaults first and only consider
> changes if there is an obvious problem,?
>> In fact I was trying to
>> reduce the head seeking with larger agcounts.
> AGs are not for reducing seeking - they are for increasing
> allocation parallelism and scaling freespace indexes to extremely
> large filesystem sizes.
> In fact, trying to use more than a few hundred AGs will hit internal
> AG indexing scalability limitations, especially as you start to fill
> up AGs and have to scan for AGs with free space in them.
> IOWs, using large numbers of AGs are inadvisable for many reasons.

Marcus, if you are seeing excessive head seeking with this maildir
workload, the problem isn't the number of AGs.  The problem is that
you're using striping for a small file high random IOPS workload, and
you don't have enough spindles, thus not enough seek bandwidth.

I recommend 3 changes, one of which I previously mentioned:

1.  Use 8 mirror pairs instead of 4
2.  Don't use striping.  Make an mdraid --linear device of the 8 mirrors
3.  Format with '-d agcount=32' which will give you 4 AGs per spindle

With striping, each file IO will generate multiple head seeks per
spindle across all spindles.  With a linear array each file IO will
typically only generate seeks on a single spindle, as the metadata and
file data should be within the same AG.

Test this configuration and post your results.


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