Re: Monumentally slow directory performance.

From: Robert Watson <rwatson_at_freebsd.org>
Date: Mon, 12 Apr 2004 17:26:16 -0400 (EDT)
On Sat, 10 Apr 2004, Jaye Mathisen wrote:

> I know.  if I start off with an empty dir, it goes really really fast
> until I get around 2000-2500 or so.  And then it just gets slower and
> slower. 
> 
> If it's samba, I have no idea what.  I'm running a current samba, pretty
> much the default config.  On large files I see 12-13MB/second. 
> 
> If my switch supported jumbo frames I'm sure it'd be even faster. 
> 
> I'll do some of the tests from the command prompt, see if I see the same
> thing. 

I use some fairly large directory sizes with FreeBSD 4.x pretty frequently
(1 million plus files), and the largest single problem I have is with
tools that want to sort directory output.  For example, I find that ls
with the default arguments will burn several seconds sorting, whereas
reading and listing the directory without sorting will be a small fraction
of that.  I think it would be useful to try and reproduce your performance
problems using hand-crafted C to time inserts, listing, and removals, to
avoid the possibility that applications are performing O(NlogN) or worse
operations on the list.

How long are the filenames you're using?

Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
robert_at_fledge.watson.org      Senior Research Scientist, McAfee Research


> 
> 
> On Sat, Apr 10, 2004 at 11:38:35AM -0400, Brian F. Feldman wrote:
> > Jaye Mathisen <mrcpu_at_internetcds.com> wrote:
> > > 
> > > 
> > > Running a 5.2 supped as of 4/9.
> > > 
> > > I have the UFS_DIRHASH stuff compiled into my kernel.  Is there some other
> > > frob to actually "turn" it on?
> > > 
> > > I run softupdates, and moving files from my local box over gig ethernet to a directory
> > > with 5000 files in it is moving about 1 file every 6-7 seconds.
> > > 
> > > If I move the same files to an empty directory, they move so fast I can' even
> > > read the names, which is more "normal".
> > > 
> > > Even directories with 2500 or so files seem really, really, really, really slow.
> > > at least for adding/removing.
> > > 
> > > My FS is UFS2, on a 3ware RAID controller.  I would love any ideas.  smbd 
> > > is burning up 60-70% of the CPU, I've tried kernels with and without all
> > > the witness/diagnostic and all that stuff.
> > 
> > Burning up 60-70% of the CPU?  Just writing a file every 6-7 seconds to a 
> > pretty small directory?
> > 
> > {"/home/green"}$ ls Mail/current | wc -l
> >    64109
> > {"/home/green"}$ date; touch Mail/current/rand$RANDOM;\
> > > date; touch Mail/current/rand$RANDOM; date
> > Sat Apr 10 11:37:55 EDT 2004
> > Sat Apr 10 11:37:55 EDT 2004
> > Sat Apr 10 11:37:55 EDT 2004
> > 
> > You should be getting "many" a second.  Samba must be doing something wrong/
> > stuck on something.
> > 
> > -- 
> > Brian Fundakowski Feldman                           \'[ FreeBSD ]''''''''''\
> >   <> green_at_FreeBSD.org                               \  The Power to Serve! \
> >  Opinions expressed are my own.                       \,,,,,,,,,,,,,,,,,,,,,,\
> > 
> > 
> > 
> > !DSPAM:407814fe446531253994025!
> > 
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
> 
Received on Mon Apr 12 2004 - 12:26:50 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:50 UTC