dadv: (Default)
[personal profile] dadv

Вздумалось повторить старый тест по созданию/удалению миллиона файлов в одном каталоге на текущем софте/железе. Чуть поправил старый скрипт, запустил:

% create_files create remove
vfs.ufs.dirhash_maxmem: 16777216
creating...
created 50000: 2 sec, 25000 files/sec, vfs.ufs.dirhash_mem: 2798073
created 100000: 4 sec, 25000 files/sec, vfs.ufs.dirhash_mem: 2982122
created 150000: 7 sec, 21428 files/sec, vfs.ufs.dirhash_mem: 3257169
created 200000: 9 sec, 22222 files/sec, vfs.ufs.dirhash_mem: 3670766
created 250000: 12 sec, 20833 files/sec, vfs.ufs.dirhash_mem: 4290135
created 300000: 15 sec, 20000 files/sec, vfs.ufs.dirhash_mem: 4290135
created 350000: 19 sec, 18421 files/sec, vfs.ufs.dirhash_mem: 5219701
created 400000: 21 sec, 19047 files/sec, vfs.ufs.dirhash_mem: 5219701
created 450000: 24 sec, 18750 files/sec, vfs.ufs.dirhash_mem: 5219701
created 500000: 27 sec, 18518 files/sec, vfs.ufs.dirhash_mem: 5219701
created 550000: 32 sec, 17187 files/sec, vfs.ufs.dirhash_mem: 6614566
created 600000: 34 sec, 17647 files/sec, vfs.ufs.dirhash_mem: 6614566
created 650000: 37 sec, 17567 files/sec, vfs.ufs.dirhash_mem: 6614566
created 700000: 40 sec, 17500 files/sec, vfs.ufs.dirhash_mem: 6614566
created 750000: 49 sec, 15306 files/sec, vfs.ufs.dirhash_mem: 8706349
created 800000: 51 sec, 15686 files/sec, vfs.ufs.dirhash_mem: 8706349
created 850000: 54 sec, 15740 files/sec, vfs.ufs.dirhash_mem: 8706349
created 900000: 56 sec, 16071 files/sec, vfs.ufs.dirhash_mem: 8706349
created 950000: 59 sec, 16101 files/sec, vfs.ufs.dirhash_mem: 8706349
created 1000000: 61 sec, 16393 files/sec, vfs.ufs.dirhash_mem: 8706349
removing...removed: 44 sec, 22727 files/sec


Из плюсов: замираний системы при расширении UFS_DIRHASH больше нет.

Машинка 2006 года: Intel D975XBX с Pentium-D dualcore 2.8Ghz, 6GB памяти, контроллер ICH7R, на нём два диска Seagate и WD по 500GB.

Софт: FreeBSD 8.1-STABLE/i386 (доступно 3.5GB из 6), диски побиты пополам на слайсы, вторые половинки дисков собраны в gmirror, поверх него gcache с размером блока 128K (MAXPHYS), по нему gjournal, внутри записана bsdlabel, внутри один раздел с файловой системой, созданной командой newfs -J -L test /dev/cache/ca1.journala

Смонтирована в async, df показывает:

Filesystem            Size    Used   Avail Capacity iused ifree %iused  Mounted on
/dev/ufs/test         202G    8.0K    186G     0%       4   27M    0%   /mnt/tmp
Текущая редакция скрипта:
#!/bin/sh

create() {
  cd $subdir || exit 1
  echo creating...
  stamp=`date +%s`
  jot $count 1 | while read j
  do
    jot $step 1 | while read i
    do
      if [ -n "$copyfile" ]; then
        cp "$copyfile"  $j.$i
      else
        echo -n >> $j.$i
      fi
    done
    n=$(($n+$step))
    spent=$((`date +%s`-$stamp))
    echo created $n: $spent sec, `echo $n/$spent | bc` files/sec, \
      `sysctl vfs.ufs.dirhash_mem`
  done
  cd ..
}

remove() {
  echo -n removing...
  stamp=`date +%s`
  rm -rf $subdir
  spent=$((`date +%s`-$stamp))
  echo "removed: $spent sec, `echo "$count*$step/$spent" | bc` files/sec"
}

subdir=test
[ -d $subdir ] || mkdir -p $subdir
n=0
step=50000
count=20
#step=1000
#count=1000

sysctl vfs.ufs.dirhash_maxmem

case "$1" in
/*)     copyfile="$1"; shift ;;
esac
[ "$1" = "create" ] && shift && create
[ "$1" = "remove" ] && shift && remove

This account has disabled anonymous posting.
(will be screened if not validated)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org

Profile

dadv: (Default)
Choose your future

July 2024

M T W T F S S
12 34567
891011121314
15161718192021
22232425262728
293031    

Tags

Style Credit

Powered by Dreamwidth Studios