Ветеран
Сообщения: 1862
Благодарности: 132
|
Профиль
|
Сайт
|
Отправить PM
| Цитировать
вот результат некоторой работы. критика приветствуется
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 < $e )
dd if=/dev/zero of=/mnt/test/original-$i bs=1024 count=$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 < $e )
echo "====================== mkdir $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 < $e )
echo "====================== copy $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
вот и образец отчета
|
-------
ДИЛЕТАНТ - это курьезный человек, который испытывает удовольствие делать то, чего не умеет.
AMD 4200+, MSI Neo2Platinum, 2Gb, ATI 9600, D-Link DWL-G510, FreeBSD 8.0, KDE 4.3.4
Последний раз редактировалось Igor_I, 08-03-2007 в 23:22.
Отправлено: 23:11, 08-03-2007
| #27
|