Re: reading an empty directory after reboot is very slow
Hi.
On Tue, Apr 14, 2015 at 09:22:15AM +0200, Petter Adsen wrote:
> On Tue, 14 Apr 2015 10:12:28 +0300
> Reco <recoverym4n@gmail.com> wrote:
>
> > Hi.
> >
> > On Tue, Apr 14, 2015 at 08:58:20AM +0200, Petter Adsen wrote:
> > > On Mon, 13 Apr 2015 15:41:03 +0200
> > > Vincent Lefevre <vincent@vinc17.net> wrote:
> > >
> > > > On 2015-04-13 14:45:25 +0200, Loïc Grenié wrote:
> > > > > 2015-04-13 14:39 GMT+02:00 Vincent Lefevre <vincent@vinc17.net>:
> > > > > > The problem is that this operation is (always?) very slow:
> > > > > > something like 100 seconds (1 minute and 40 seconds). It has
> > > > > > been reproducible for several months. The logs show nothing
> > > > > > during this operation.
> > > > > >
> > > > > > Any idea?
> > > > >
> > > > > Maybe the directory is very large (even though its empty).
> > > > > Try
> > > > >
> > > > > ls -ld tmp.
> > > > >
> > > > > and see if the file "tmp" is large.
> > > >
> > > > Thanks! I didn't know that (I thought that the file system would
> > > > automatically "optimize" directories when files are removed, so
> > > > I've never looked closely at their size). Indeed:
> > > >
> > > > ypig:~/eftests> ls -ld tmp
> > > > drwxr-xr-x 2 vlefevre vlefevre 29655040 2015-04-13 15:25:55 tmp/
> > >
> > > Can someone please enlighten me as to why the entry for this
> > > directory is so large, even though it is empty? Since it's
> > > apparently obvious to everyone else, I would very much like to
> > > know :)
> >
> > A case study:
> >
> > $ mkdir tmp
> > $ du -sxh tmp
> > 4.0K tmp
> > $ for x in {1..100000}; do touch tmp/$x; done
> > $ du -sxh tmp
> > 2.1M tmp
> > $ find tmp -type f | xargs rm
> > $ du -sxh tmp
> > 2.1M tmp
> > $ ls tmp | wc -l
> > 0
> >
> > Removing files from the directory does not change directory's inode
> > size. If using ext4, at least.
>
> Interesting. Also good to know. Thank you :)
>
> But if you create new files in that directory after deleting them, I
> expect the inodes get reallocated?
Yes, they should.
> Is this specific to Linux/ext4?
No. I'm not sure about vxfs, btrfs and zfs (or rather - lazy to check
it), but for ext family, ufs and jfs2 - it works all the same.
Reco
Reply to: