Ключевые слова:disk, fs, file, shell, benchmark, example, (найти похожие документы)
Date: Sat, 12 Oct 2002 14:45:02 +0600
From: Eugene Grosbein <Eugene_Grosbein@f1.n5006.z2.fidonet.org>
Newsgroups: ftn.ru.unix.bsd
Subject: Тестирование времени создания и удаления миллиона файлов на FreeBSD
>>>>Как линейный? А dirhash?
VD>>> Создай миллион файлов в одной дире, а? А потом уничтожь.
SR>> Да я бы с удовольствием. Hо вот нет у меня достаточно современного
SR>> FreeBSD. А в чём, собственно, проблема? Миллион - это же совсем немного :)
VN> Если рост от 10000...50000, на которых я это проверил, линейный, то эта
VN> операция - создание и удаление - займет 50 минут на моем железе (i815E,
VN> Cel800, IBM + ATA100 + tags). Скорость поиска в созданном я не проверял.
Я как-то тестировал и в ru.unix постил после чего флейм на эту тему
там кончился.
Как я люблю такие задачи, с миллионом файлов одном каталоге.
Под такую задачу систему и настроить не грех.
#!/bin/sh
mkdir dir
cd dir
n=250000 # на этой fs у меня свободно только 36% инодов, около 260,000
stamp=`date +%s`
jot $n 1 | while read file
do
echo -n > $file.file
done
spent=$((`date +%s`-$stamp))
sysctl vfs.ufs
echo "$spent sec, `echo $n/$spent | bc` files/sec"
cd ..
stamp=`date +%s`
rm -rf dir
spent=$((`date +%s`-$stamp))
echo "$spent sec, `echo $n/$spent | bc` files/sec"
vstncj> (один миллион) мелких файлов. Чтобы иноды неожиданно не кончились (что само
vstncj> по себе суксь), можешь создать 1000 файлов по 1000 хардлинков на каждый.
vstncj> Потом уничтожаешь эту директорию. Постишь результаты в эху.
vfs.ufs.dirhash_minsize: 2560
vfs.ufs.dirhash_maxmem: 8388608
vfs.ufs.dirhash_mem: 2131064
vfs.ufs.dirhash_docheck: 0
47 sec, 5319 files/sec # создание четверти миллиона файлов
34 sec, 7352 files/sec # удаление этой кучи
Это noasync+softupdates+dirhash, диск дергался изредка, из этого времени
99% system time, так что измерена именно скорость fs. При async время то же.
Celeron-450/320Mb RAM/64Mb kmem/8Mb dirhash mem.
Для миллиона файлов памяти все еще хватит, так что прогнозируем
47*4=188 sec на создание и 34*4=136 sec на удаление.
vstncj> А потом узнаёшь, что под полуосью эта опреация занимет меньше получаса,
vstncj> включая написание скриптов - и глубоко задумываешься об авторитетах,
vstncj> ламерстве и тому подобных вещах.
Задумываешься. И в каком месте тут полчаса или даже 5 минут чистого времени?
Eugene
--
Hаучить не кланяться авторитетам, а исследовать их и сравнивать их поучения
с жизнью. Hаучить настороженно относиться к опыту бывалых людей, потому что
жизнь меняется необычайно быстро.