Разлика между версии на „Тестване на производителност с autobench“
(Нова страница: Category:Servers ==Описание== autobench e прост скрипт, написан на Perl, който автоматизира процеса на тес...) |
|||
| Ред 164: | Ред 164: | ||
Генерираният файл е във формат PS. | Генерираният файл е във формат PS. | ||
| − | |||
| − | |||
==Допълнителна информация== | ==Допълнителна информация== | ||
Версия от 16:26, 23 март 2015
Съдържание
Описание
autobench e прост скрипт, написан на Perl, който автоматизира процеса на тестване на производителността на WEB сървъри с httperf. autobench стартира httperf многократно, като всеки път увеличава броя на заявките (connections) в секунда и извлича информация за генериране на статистика.
Инсталиране на autobench
apt-get update apt-get upgrade cd /tmp wget http://www.xenoclast.org/autobench/downloads/debian/autobench_2.1.2_i386.deb sudo dpkg -i autobench_2.1.2_i386.deb
Забележка: Последните версии на autobench са достъпни от http://www.xenoclast.org/autobench/.
Стартиране на autobench
autobench --single_host --host1 www.test.com --uri1 /index.html --port1 80 --quiet --low_rate 20 --high_rate 200 --rate_step 20 --num_call 10 --num_conn 5000 --timeout 5 --file results.tsv
По този начин се стартира autobench със следните параметри:
- --single_host - проверка на един единствен хост
- --host1 - име или адрес на хост
- --uri1 /index.html - тестова страница (URI)
- --port1 - порт
- --quiet - скрива част от изхода на скрипта (този параметър може да не работи правилно при някои версии на autobench)
- --low_rate 20 - начална стойност на заявките в секунда (connections) 20
- --high_rate 200 - крайна стойнот на заявките в секунда (connections) 200
- --rate_step 20 - увеличаване на броя на заявките в секунда (connections) с 20
- --num_call 10 - брой сесии в секунда (request) 10
- --num_conn 5000 - всеки тест се състои от 5000 заявки (connections)
- --timeout 5 - ако отговора не се получи в рамките на 5 секунди се счита за грешка
- --file - файл, в който се записват резултатите от теста
Реузлтат от анализа
Резултатът от анализа се записва в посочения от ключа --file файл. Данните са във формат CSV.
Примерен резултат от сканирането е показан на фигурата по-долу:
- dem_req_rate - стартираните заявки (requests) в секунда
- req_rate - заявките(requests) в секунда, които реално могат да се осъществят
- con_rate - връзките (connections) в секунда, които могат реално да се осъществят
- min_rep_rate - миинмален брой отговори (replies) в секунда
- avg_rep_rate - среден брой отговори (replies) в секунда
- max_rep_rate - максимален брой отговори (replies) в секунда
- stddev_rep_rate - стандартно отклонение на параметъра отговори (replies) в секунда
- resp_time - времето за отговор в милисекунди
- net_io - натоварване на мрежата в KB/s
- errors - брой грешки
Създаване на графика с bench2graph
След инсталиране на autobench в скрипта bench2graph има неточност - два грешни параметъра. След направените корекции скрипта трябва да изглежда по следния начин:
#!/bin/sh
#
# BenchToGraph : Graph modeler for Autobench results files
# written by Samuel Dupas <samuel.dupas@synaptique.co.uk>
#
# Thanks to Julian T J Midgley <jtjm@xenoclast.org>
#
if [ $# -lt 2 ] ; then
echo "Usage : bench2graph PARAM_1 PARAM_2 [ PARAM_3 ... PARAM_N ]"
echo "Parameter 1 : autobench results file"
echo "Parameter 2 : name of the postscript output file"
echo "Parameter 3..N : [optional] columns to display in the graphic"
exit 1
fi
if [ ! -f $1 ] ; then
echo "Incorrect file format"
exit 2
fi
if [ -f ${2} ] ; then
echo "File ${2} already exist"
exit 3
fi
input=$1
shift
output=$1
if [ `echo $output |cut -c 1` != '/' ] ; then
output=`pwd`/$output
fi
shift
while [ $# -ne 0 ] ; do
liste="$liste,$1,"
shift
done
echo -n "Enter the title : "
read title
if [ ! -d /tmp/graph_script ] ; then
mkdir /tmp/graph_script
fi
mkdir /tmp/graph_script/$$
cp $input /tmp/graph_script/$$/results.tsv
cd /tmp/graph_script/$$
nblines=`cat results.tsv | wc -l`
nblines=`expr $nblines - 1`
legend=`head -1 results.tsv`
i=1
for col in $legend ; do
if [ $i -ne 1 ] ; then
if [ `echo -n $liste | wc -c` -eq 0 ] ; then
tail -$nblines results.tsv | gawk '{print $1 " " $line}' line=$i > $col
files="$files $col"
elif `echo $liste | grep ",${i}," > /dev/null` ; then
tail -$nblines results.tsv | gawk '{print $1 " " $line}' line=$i > $col
files="$files $col"
fi
fi
i=`expr $i + 1`
done
echo set terminal postscript color > gnuplot.cmd
echo set key outside below >> gnuplot.cmd
echo set key box >> gnuplot.cmd
echo set grid >> gnuplot.cmd
echo set output \"${output}\" >> gnuplot.cmd
echo set style data linespoints >> gnuplot.cmd
echo set title \"$title\" >> gnuplot.cmd
echo -n plot >> gnuplot.cmd
j=0
for col in $files ; do
if [ $j -ne 0 ] ; then
echo -n "," >> gnuplot.cmd
fi
echo -n " \"${col}\"" >> gnuplot.cmd
j=`expr $j + 1`
done
echo >> gnuplot.cmd
gnuplot gnuplot.cmd
rm -rf /tmp/graph_script/$$
Стартирането на скрипта става по следния начин:
bench2graph /tmp/results /tmp/result_graph
Генерираният файл е във формат PS.
