как пользоваться ab?

Духовность™

Продвинутый новичок
как пользоваться ab?

Сабж. Мануал у меня под носом, а как мне оценить, насколько быстро работает мое приложение на PHP? Какие параметры нужно ввести? И какой URL вводить - локальный или URL веб-сервера? И какие показатели хорошие, а какие плохие?

Я вот тестировал страницу на веб-сервере, вот что получилось:

Код:
Z:\usr\local\apache\bin>ab -n 100 -c 3 "http://www.*******.ru/admin/user/"

Server Software:        Apache/2.0.63-lk.c
Server Hostname:        [url]www.adverts.ru[/url]
Server Port:            80

Document Path:          /admin/user/
Document Length:        6075 bytes

Concurrency Level:      3
Time taken for tests:   2.93750 seconds
Complete requests:      100
Failed requests:        6
   (Connect: 0, Length: 6, Exceptions: 0)
Write errors:           0
Total transferred:      658594 bytes
HTML transferred:       607494 bytes
Requests per second:    47.76 [#/sec] (mean)
Time per request:       62.813 [ms] (mean)
Time per request:       20.938 [ms] (mean, across all concurrent requests)
Transfer rate:          307.10 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   3.0      0      15
Processing:    46   61   6.3     62      78
Waiting:       31   45   6.7     46      78
Total:         46   61   6.0     62      78

Percentage of the requests served within a certain time (ms)
  50%     62
  66%     62
  75%     62
  80%     62
  90%     62
  95%     78
  98%     78
  99%     78
 100%     78 (longest request)

Z:\usr\local\apache\bin>
 

fixxxer

К.О.
Партнер клуба
с -c3 только битрикс тестировать )

ставь в районе от 30 до 100 и смотри что получится, прежде всего рпс и отказы. ну и распределение по времени конечно тоже интересно.

-~{}~ 05.03.10 01:36:

тестировать разумеется надо с сервера, стоящего рядом с тестируемым, а не через интернеты с винды )
 

Духовность™

Продвинутый новичок
Конечно божественно, это же работает на моем супер-мега-новом фреймворке!

-~{}~ 05.03.10 14:20:

Данных, удовлетворяющих запросу, не найдено
хе-хе, аноним, грохнув юзера, думал что он мне сломает что-то, хе-хе..
 

Fortop

Новичок
triumvirat
http://www.adverts.ru/admin/user/edit/
ерунда с кодировкой страны проживания

Там где телефоны отлично подошли бы радиокнопки, без всяких изысков с чекбоксами.
 

Духовность™

Продвинутый новичок
ерунда с кодировкой страны проживания
в недоброузерах - да =)
Как это лечится вообще? Очевидно беда с кодировками потому, что ответ идет в UTF-8, а страница в win.

Там где телефоны отлично подошли бы радиокнопки, без всяких изысков с чекбоксами.
на сервер нужно отдавать все пять элементов,с ноликами или единичками. Там архитектура требует того. Я не помню уже как там устроено..
 

Fortop

Новичок
в недоброузерах - да =)
А можно список недобраузеров?

Как это лечится вообще? Очевидно беда с кодировками потому, что ответ идет в UTF-8, а страница в win
Эммм, если список формируется из массива/объекта, то насколько я помню должна происходить конвертация автоматом, если происходит подстановка innerHTML, то резонный вопрос, какого черта ответ пришел в кодировке отличной от кодировки страницы?

на сервер нужно отдавать все пять элементов,с ноликами или единичками
PHP:
$buttons = array_intersect($allowedButtons, $received) + $allowedButtons;
 

Духовность™

Продвинутый новичок
А можно список недобраузеров?
В FF и IE все работает почему-то.

список формируется из массива/объекта, то насколько я помню должна происходить конвертация автоматом
Вытягиваю данные стандартно:
PHP:
var xmlDomDoc = req.responseXML; // объект типа xmldomdocument
var arr = new Array();
var nodes = xmlDomDoc.getElementsByTagName(root_tag)[0].childNodes;

for (var i=0; i <nodes.length; i++)
{
    if (nodes.item(i).nodeType == 1)
    {
        arr[nodes.item(i).getAttribute('value')] = nodes.item(i).firstChild.nodeValue;
    }
}

return arr;
заполняю select НЕ с помощью innerHTML:
PHP:
var opt = document.createElement('OPTION');
opt.appendChild(document.createTextNode(option_text));
opt.setAttribute('value', '0');
lnk.appendChild(opt);

if (arr.length)
{
    for (j in arr)
    {
        if (typeof arr[j] == 'function') continue;
        
        var opt = document.createElement('OPTION');
        opt.appendChild(document.createTextNode(arr[j]));
        opt.setAttribute('value', j);

        if (checked_user_locations[id_select] == j)
        {
            opt.setAttribute('selected', 'selected');
        }

        lnk.appendChild(opt);
    }
}
 

korchasa

LIMB infected
triumvirat
ab это синтетика, т.к. один урл, и молотит без пауз. Т.е. переносимость DOS'а можно потестировать, но к реальной жизни это отношения не имеет.

Начинать надо с плана тестирования. Сколько пользователей, сколько гостей, куда ходят пользователи, паузы между кликами. В идеале все сводится к продажам, но это когда они явно есть ;) Чаще к времени отклика, пропускной способности и их комбинации.

Из нормальных средств есть jMeter и самодельные скрипты. Более-менее полноценные - http_load и siege, но они слабо подходят для сайтов с пользователями.
 

Crys

Двинутый новичок
Как это лечится вообще? Очевидно беда с кодировками потому, что ответ идет в UTF-8, а страница в win.
Когда я столкнулся с такой проблемой - перешел на json.

Отлично работало под IE, Opera (8.54, как щас помню), FF 2/3, Konqueror.. Под Safari не тестировал, ибо не было возможности. Chrome еще не существовал.
 

dimagolov

Новичок
vovanium, во-первых она платная, в во-вторых:
Detailed test logs and several easy to read graphs make analyzing results a snap. Webserver Stress Tool for Windows (2000/XP/2003/Vista/7/2008) can benchmark almost any HTTP server (e.g. static pages, JSPs/ASPs, or CGIs) for performance, load, and stress-tests.
это мне что, тачку с виндой тянуть на серверную площадку ради такого чуда?

-~{}~ 05.03.10 12:14:

Очевидно беда с кодировками потому, что ответ идет в UTF-8, а страница в win.
triumvirat, использование Ajax-а без гемороя это одна из причин перевода сайта на UTF-8. обоснуй что тебе мешает это сделать.
 

fixxxer

К.О.
Партнер клуба
ну если нужна не долбилка а что то посерьезнее - то http://grinder.sourceforge.net/ например

про виндовую фигню вообще несерьезно, она сдохнет намного быстрее чем сервак ;)
 

vovanium

Новичок
dimagolov
ну когда это останавливало любознательных :)
что касается тачки с виндой, а что ноуты или широкополосный инет уже отменили?
Не знаю как у тебя, но у меня с каналом к датацентру всё нормально, 100Мбит с пингом 1-2 мс, так что там не то что php-скрипты проверять, можно на DDOS устойчивость проверять и никуда ходить не нужно :)
да и в webstress основной плюс это интерфейс, в котором можно удобно и быстро симулировать юзеров, а не тупо долбить по одному адресу.
 

vovanium

Новичок
dimagolov
а догадайся, как у меня с каналом к датацентру в том городе, где ты живешь
Ну как бы экзотические случаи нам не особо нужны с таким же успехом можно и в антарктиде датацентр поставить, а чего экономия на охлаждении :) Я говорю о случаях когда админ и сервер хотя бы в одной стране.

Ну и у вебстреса есть еще прикольная фишка, тест с нарастающим количеством подключений, с графиком, где видно какую нагрузку потянет сервак.
 

dimagolov

Новичок
можно и в антарктиде датацентр поставить, а чего экономия на охлаждении
а вот и не правда. температура воздуха там, конечно, располагающая, но датацент будет постоянно погружаться в снег, который постоянно же превращается в лед, а снег и лед плохие проводники тепла. ;)
Ну и у вебстреса есть еще прикольная фишка, тест с нарастающим количеством подключений, с графиком, где видно какую нагрузку потянет сервак.
подобное легко получить через ab + shell script
 
Сверху