extremely slow "ls" on a cleared fatty ext3 directory on FC4/5

John Wendel jwendel10 at comcast.net
Sun Aug 13 17:12:43 UTC 2006


Robinson Tiemuqinke wrote:
>  Hi,
>
>  A stupid flat directory /tmp holding 5 millon files, the directory
>  locates on a ext3 file system with dir_index feature turned on. The
>  running Linux are FC4 and FC5.
>
>  The files are just directly under /tmp, not in any subdirectories --
>  they are results of mis-operations of users.
>
>  Then a 'ls' or 'find' command will take one hour to finish, a lot of
>  other applications on the computer boxes are affected.
>
>  I managed to have deleted the files one by one with a 'find . |xargs
>  rm -rf' similar command in about 10 hours. but after a file system
>  sync, it still take me 20 minutes to list the cleaned /tmp directory
>  again -- even now the directory holds only 8 files total.
>
>  so I try to 'ls' the directory itself (not any files and
>  subdirectories on it) and find that its size is stupidly large (it is
>  131M even after deletion) compared with 4K for normal directories.
>
>  -bash-3.00# ls -alFdh /tmp* drwxrwxrwt  4 root  staff 4.0K Aug 12
>  23:17 new_tmp/ drwxrwxrwt  4 root  staff 131M Aug 12 20:30 tmp/
>
>  Anyone know why the former fatty directory still looks unchanged and
>  takes hours to traverse even after 99.999999% files got removed?
>
>  If there are any ways to fix this kind of problem without rebooting
>  machine? I'm afraid of the commands "rsync -avHn /tmp/ /new_tmp/; rm
>  -rf /tmp/ && mv /new_tmp/ /tmp" because other applications are
>  accessing /tmp/ as well.
>
>  Please help. Thanks a lot.

EXT3 directories grow but they don't shrink. Rebooting won't fix this 
problem.
The only fix that I know is to delete the old directory and create a new 
one.
BTW, XFS automatically shrinks directories (but has its own set of 
problems).

Regards,

John




More information about the fedora-list mailing list