[Top] [All Lists]

Re: 1B files, slow file creation, only AG0 used

To: mike@xxxxxxxxxxxxxxxx
Subject: Re: 1B files, slow file creation, only AG0 used
From: Stan Hoeppner <stan@xxxxxxxxxxxxxxxxx>
Date: Sun, 11 Mar 2012 21:59:28 -0500
Cc: Eric Sandeen <sandeen@xxxxxxxxxxx>, xfs@xxxxxxxxxxx
In-reply-to: <CAEm1PvmTCaw_eSNPPvQLvwu5X7ywseOBbALxMkSLnOT9iQd6fQ@xxxxxxxxxxxxxx>
References: <CAEm1Pvny7Q2rrsCLURvo5kQM3vt+yMg17WxoSYGKVWm7Lgp8MA@xxxxxxxxxxxxxx> <4F5ADFCB.9010602@xxxxxxxxxxx> <CAEm1PvmTCaw_eSNPPvQLvwu5X7ywseOBbALxMkSLnOT9iQd6fQ@xxxxxxxxxxxxxx>
Reply-to: stan@xxxxxxxxxxxxxxxxx
User-agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20120216 Thunderbird/10.0.2
On 3/9/2012 11:25 PM, Michael Spiegle wrote:

> Our "1B" files are spread out evenly into a tree of 65536 directories.
>  I've read the docs, and they seem explicit about new directories
> being created in new AGs, however we are not seeing that on our
> system.  All 1B files (despite being spread out across more than 64K
> dirs) are in the first AG.  I have tried remounting the filesystem
> with inode64 (and on 3.2.9), but this behavior does not seem to change
> even if I add more files afterwards.

When using the inode32 allocator and having 64k dirs, and seeing no
files in AGs other than AG0, might this tend to suggest that these are
zero length files or similar, being stored entirely within the directory
inodes, thus occupying no extents in other AGs?  Would this tend to
explain why 'everything' is in AG0?

> As mentioned above, the inode64 mount option doesn't seem to affect
> anything.  Can you think of anything else I should check that would
> prevent this from working?

If my guess about these files is correct, mounting with inode64 and
writing additional files should create new directory inodes in other
AGs, but you still won't see file extents in those other AGs, just as
you don't in the first AG.

Are you using this XFS filesystem as a poor man's database or something
similar?  This would tend to explain a billion files, with no extents,
wholly stored in directory inodes, only in AG0, while using the inode32


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