Разлика между версии на „Тестване на производителност с autobench“
(→Реузлтат от анализа) |
|||
Ред 47: | Ред 47: | ||
*'''dem_req_rate''' - стартираните заявки (requests) в секунда | *'''dem_req_rate''' - стартираните заявки (requests) в секунда | ||
− | *'''req_rate''' - заявките(requests) в секунда, които реално могат да се осъществят | + | *'''req_rate''' - заявките (requests) в секунда, които реално могат да се осъществят |
*'''con_rate''' - връзките (connections) в секунда, които могат реално да се осъществят | *'''con_rate''' - връзките (connections) в секунда, които могат реално да се осъществят | ||
− | *'''min_rep_rate''' - | + | *'''min_rep_rate''' - минимален брой отговори (replies) в секунда |
*'''avg_rep_rate''' - среден брой отговори (replies) в секунда | *'''avg_rep_rate''' - среден брой отговори (replies) в секунда | ||
*'''max_rep_rate''' - максимален брой отговори (replies) в секунда | *'''max_rep_rate''' - максимален брой отговори (replies) в секунда |
Текуща версия към 11:41, 24 март 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.