Тестирование быстродействия файловых систем.

Аватара пользователя
Igor_I

Re: Тестирование быстродействия файловых систем.

Сообщение Igor_I »

ruslandh

Так не со всеми параметрами сразу.

Вот у тебя лично, как смонтированны разделы?
Аватара пользователя
ruslandh

Re: Тестирование быстродействия файловых систем.

Сообщение ruslandh »

UUID=c845af3e-51ed-4b08-b342-f91fa348609c / ext3 defaults 1 1

UUID=7a485083-3512-47f9-ba61-f75122a8c2bb /boot ext3 defaults 1 2

UUID=a1bacb74-b1eb-4da8-88ba-bfb1fe63f613 /home ext3 defaults 1 2

/dev/sda2 /mnt/win_c1 vfat iocharset=cp1251,quiet,codepage=866,umask=0 0 0

/dev/sda3 /mnt/win_c2 vfat iocharset=cp1251,quiet,codepage=866,umask=0 0 0

/dev/sda5 /mnt/win_d vfat iocharset=cp1251,quiet,codepage=866,umask=0 0 0

/dev/sda6 /mnt/win_e vfat iocharset=cp1251,quiet,codepage=866,umask=0 0 0

/dev/sda7 /mnt/win_f vfat iocharset=cp1251,quiet,codepage=866,umask=0 0 0

/dev/sda9 /mnt/win_g vfat iocharset=cp1251,quiet,codepage=866,umask=0 0 0

/dev/sdb5 /mnt/win_h ntfs defaults,quiet,umask=0,nls=cp1251 0 0



UUID=6d77db04-154b-442b-be08-336f0952c1a1 swap swap defaults 0 0

UUID=2acf0afc-14f4-42f6-a222-4f492b2e4e4b /arhiv ext3 defaults 1

UUID=b34fdc30-ded1-45b2-80fd-8c197b40cbf9 /mnt/arhiv ext3 defaults 0
Аватара пользователя
Igor_I

Re: Тестирование быстродействия файловых систем.

Сообщение Igor_I »

Вопрос, как можно нагрузить диск на чтение, если создается 20 директорий по 200 файлов.

Если все - много, да и последовательное чтение быстрее проходит, чем случайное.
Аватара пользователя
ruslandh

Re: Тестирование быстродействия файловых систем.

Сообщение ruslandh »

Обрати внимание на

apt-cache search Bonnie++

bonnie++ - Программа для определения скорости работы жестких дисков и файловых систем

bonnie - Unix filesystem performance benchmark



http://www.rpmfind.net/linux/rpm2htm...p?query=bonnie
Аватара пользователя
Igor_I

Re: Тестирование быстродействия файловых систем.

Сообщение Igor_I »

это наверно синтетика

хотя у меня тоже надуманный тест, но все же, потом посмотрим

из чего состоит тест

создание 20 директорий, в каждой директории по 200 файлов одного размера

размер файлов от 2 до 1024 кб

чтение - тут еще не определился, есть подозрение что system в Perl медленный, только как проверить.
Аватара пользователя
Igor_I

Re: Тестирование быстродействия файловых систем.

Сообщение Igor_I »

вот результат некоторой работы. критика приветствуется





PHP код:

Код: Выделить всё

#!/bin/tcsh



# определение лог-файлов

mkdir 0777 /tmp/test/log

set filesuffix=`date "+%Y.%m.%d-%H.%M.%S"`

set iostatlog="/tmp/test/log/log.$filesuffix.iostat.log"

set filelog="/tmp/test/log/log.$filesuffix.mkdir.log"

set tablelog="/tmp/test/log/log.$filesuffix.table.log"

# определение слайса

set slice=ad4s1a

set mount="/mnt/ad41"

set start = `date +%s` 



echo "#######################################################" >> $filelog

date >> $filelog 



# создание виртуального диска 8 мб

mdconfig -a -t malloc -s 8m -u 3 > /dev/null

newfs /dev/md3 > /dev/null

mount /dev/md3 /mnt/test



# создание на виртуальном диске временных файлов для теста

set i=2

set e=1025

while ( $i > /dev/null

    set i=`expr $i \* 2`

end



# на всякий случай и на случай преждевременного прекращения работы скрипта

killall -c iostat &



### размер блока может быть равен = 2048, 4096,8192,16384

# установка параметров будущей фалйовой системы и создание файловой системы

set newfsparam="-b 16384"

newfs $newfsparam /dev/ad4s1a

echo "newfs $newfsparam" >> $filelog

# установка параметров монтирования файловой системы и её монтирование

set mountparam=""

mount $mountparam /dev/ad4s1a $mount

echo "mount $mountparam" >> $filelog



# создание подопытной директории

mkdir $mount/test 



# вывод конфигурации получившийся файловой системы

bsdlabel /dev/ad4s1 >> $filelog 



# запуск вывода расширенной отладочной информации

echo "#######################################################" >> $iostatlog

date >> $iostatlog

echo "iostat ad4" >> $filelog 

iostat -x -d ad4 -I 2  >> $iostatlog &



# вычисление размера в начале опыта

echo "size start"  >> $filelog

du -chs $mount >> $filelog 



echo " "  >> $filelog 

echo "mkdir"  >> $filelog 



# запуск вывода отладочной информации

iostat -d ad4 -I 2  >> $iostatlog &



# цикл формирующий директории с файлами

set i=2

set e=1025

set startdir = `date +%s`

while ( $i > $iostatlog

    set startd = `date +%s`

    

    set mkdirtime=`time /tmp/mkdir $mount $i`

    echo $mkdirtime >> $filelog



#    du -chs $mount >> $filelog     

    set endd=`date +%s`

    set durationd=`expr $endd - $startd`

    

    echo " Duration mkdir $i = " $durationd >> $filelog 

    echo "====================== mkdir $i =======================" >> $iostatlog

    echo "$i,$durationd" >> $tablelog

    

    set i=`expr $i \* 2`

end



# вычисление общего времени затраченного на создание директорий

set enddir=`date +%s`

set durationdir=`expr $enddir - $startdir`

echo " Duration all mkdir=" $durationdir >> $filelog 



# подсчет получившегося размера после опыта

echo " "  >> $filelog 

echo "size end"  >> $filelog 

du -chs $mount >> $filelog 



echo " "  >> $filelog 

echo "copy"  >> $filelog 



# цикл копирующий получившиеся директорий с файлами на виртуальный диск

set i=2

set e=1025

set startcopy = `date +%s`

while ( $i > $iostatlog

    set startcopy = `date +%s`

    

    set copytime=`time /tmp/copy $mount $i >> $filelog`

    echo $copytime >> $filelog

    

    set endcopy=`date +%s`

    set durationcopy=`expr $endcopy - $startcopy`

    

    echo " Duration copy $i =" $durationcopy >> $filelog 

    echo "====================== copy  $i =======================" >> $iostatlog

    echo "$i,$durationcopy" >> $tablelog

    set i=`expr $i \* 2`

end



# вычисление общего времени затраченного на копирование

set endcopy=`date +%s`

set durationcopy=`expr $endcopy - $startcopy`

echo " Duration all copy =" $durationcopy >> $filelog 



# удаление всех файлов после опыта

echo " "  >> $filelog 

echo "rm -r " >> $filelog 

echo "====================== rm -r =======================" >> $iostatlog

set rmtime=`time rm -r $mount/test >> $filelog`

echo $rmtime >> $filelog

echo "====================== rm -r =======================" >> $iostatlog



# размонтирование подопытной файловой системы

echo "umount " >> $filelog 

set unmounttime=`time umount $mount >> $filelog`

echo $unmounttime >> $filelog



# размонтирование виртуального диска и его удаление 

umount /mnt/test

mdconfig -d -u 3



# прекращение команд iostat

killall -c iostat &



# вычисление общей продолжительности работы скрипта

set end=`date +%s`

set duration=`expr $end - $start`

echo " Duration =" $duration >> $filelog 






вот и образец отчета
Вложения
log.2007.03.08-23.07.46.rar
(9.32 КБ) 0 скачиваний
log.2007.03.08-23.07.46.rar
(9.32 КБ) 0 скачиваний
Аватара пользователя
ruslandh

Re: Тестирование быстродействия файловых систем.

Сообщение ruslandh »

Цитата:



# определение слайса

set slice=ad4s1a

set mount="/mnt/ad41"

set start = `date +%s`



Получился FreeBSD специфичный скрипт, по-хорошему надо вначале определить OS
Аватара пользователя
Igor_I

Re: Тестирование быстродействия файловых систем.

Сообщение Igor_I »

Цитата:



Получился FreeBSD специфичный скрипт, по-хорошему надо вначале определить OS



Это выше моей квалификации Изображение

И потом вывод команд разве одинаковый?

iostat -x -d ad4 -I 2

iostat -d ad4 -I 2

time - это внутреняя команда tcsh
Аватара пользователя
mar

Re: Тестирование быстродействия файловых систем.

Сообщение mar »

Цитата:



Это выше моей квалификации



это uname -то ? Изображение
Ответить

Вернуться в «Новости и флейм из мира *nix»