Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 8 Nov 2008 18:40:46 -0800
From:      Jeremy Chadwick <koitsu@FreeBSD.org>
To:        no-spam@people.net.au
Cc:        freebsd-questions@freebsd.org
Subject:   Re: UFS2 limits
Message-ID:  <20081109024046.GB27423@icarus.home.lan>
In-Reply-To: <50261.1226194851@people.net.au>
References:  <50261.1226194851@people.net.au>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Nov 09, 2008 at 01:40:51AM +0000, no-spam@people.net.au wrote:
> Hi,
> I have a FreeBSD server that has about 10,500 subdirectories within a single
> directory.
> This number will keep rising and I assume UFS2 has a limit to the number of
> sub-directories in a single directory - can anyone tell me what it is?

As far as I know, there is no such limit on the number of files/dirs
inside of a directory.

I don't want to change the topic of discussion, but I *highly* recommend
you ***stop*** whatever it is you're doing that is creating such a
directory structure.  Software which has to iterate through that
directory using opendir() and readdir() will get slower and slower as
time goes on.

If this is something you've written or have control over or can work
with engineers in regards to, I recommend you change your directory
naming scheme to have separate subdirectories with the first 2 or 3
letters of the directory you wish to create.  E.g.:

/some/place/00/00ilikezeros/*
/some/place/01/01binaryheaven/*
/some/place/aa/aardvarks/*
/some/place/ab/abuse/*
/some/place/ac/actuary/*
...
/some/place/xy/xylophones/*

You get the point.

Traversing this structure is much more efficient, and requires very
little code change on your part.  Those who run nameservers that host
many zones, for example, use this structure to ensure the daemon doesn't
take 32498231 years to start up.

> What about ZFS?
> 
> At some point I'll have to re-arrange things so that I have a deeper directory
> structure, just wondering when I'll hit the limit so I can plan in advance :-)

What baffles me is why you're looking at this problem from a " "how can
the filesystem solve this engineering mistake I made for me" standpoint,
rather than "how can I solve this engineering mistake I made so that it
doesn't impact the filesystem".  Very strange.  Sometimes looking at
things in a different light makes all the difference.

Hope this helps.

P.S. -- I hope this mail makes it to you, because your From line is
no-spam@people.net.au (I'll be surprised if your account name really is
that!).

-- 
| Jeremy Chadwick                                jdc at parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.              PGP: 4BD6C0CB |




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20081109024046.GB27423>