On 09.02.2010 15:40, Roman Cheplyaka wrote: > Вот что сообщил strace -T (в угловых скобках - время проведенное в вызове) > > open("/home/feuerbach/Mail/.spam/new", > O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 <0.000039> > fstat64(3, {st_mode=S_IFDIR|0700, st_size=5931008, ...}) = 0 <0.000019> ^^^^^^^ > getdents64(3, /* 30 entries */, 4096) = 2512 <20.111790> > close(3) = 0 <0.000026> > > Убирание .spam из muttrc действительно убрало тормоза. > > Почему такое может быть? Директория /home/feuerbach/Mail/.spam/new содержит 28 > файлов суммарным размером 7.3M. ФС ext3. ext3 не уменьшает размер каталогов после удаления большого числа файлов. В результате:
$ stat .|grep Size Size: 1024 Blocks: 2 IO Block: 1024 directory $ seq 1 1000|xargs touch $ stat .|grep Size Size: 17408 Blocks: 36 IO Block: 1024 directory $ seq 1 1000|xargs rm -f $ stat .|grep Size Size: 17408 Blocks: 36 IO Block: 1024 directory Для сравнения, на reiserfs: $ stat .|grep Size Size: 48 Blocks: 0 IO Block: 4096 directory $ seq 1 1000|xargs touch $ stat .|grep Size Size: 24048 Blocks: 47 IO Block: 4096 directory $ seq 1 1000|xargs rm -f $ stat .|grep Size Size: 48 Blocks: 0 IO Block: 4096 directory Так как в этом каталоге /когда-то/ было очень большое число файлов (см. подчёркнутое в fstat), то подобный результат вполне ожидаем. cp -al .spam/new{,.new}; rm -rf .spam/new; mv .spam/new{.new,} (очевидно, это можно делать только когда никто к .spam/new обращатся не будет) -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org