Расчет пропускной способности (запросов/сек) и ее построение

Я использую клиент JMeter для проверки пропускной способности определенной рабочей нагрузки (PHP + MySQL, 1 страница) на определенном сервере. В основном я делаю «тест емкости» с увеличением количества потоков с течением времени.

Я установил плагин JMeter "Statistical Aggregate Report", и это был результат (игнорируйте строку "Время ответа"): enter

В то же время я использовал прослушиватель «Simple Data Writer» для записи файла журнала («JMeter.csv»). Затем я попытался «вручную» посчитать пропускную способность за каждую секунду теста.

Каждая строка "JMeter.csv" имеет следующий формат:

timestamp       elaspedtime   responsecode   success   bytes
1385731020607   42            200            true      325
...             ...           ...            ...       ...

Отметка времени относится ко времени, когда запрос сделан клиентом, а не когда запрос обслуживается сервером. Поэтому я просто сделал: общее время = метка времени + прошедшее время.

На следующем шаге я преобразовал общее время в формат даты, например: 13:17:01.

У меня более 14 000 образцов, и с помощью Excel я смог сделать это быстро.

Затем я подсчитал, сколько выборок было за каждую секунду. Пример:

totaltime    samples (requestsServed/second)
13:17:01     204    
13:17:02     297
...          ...

Когда я попытался отобразить результаты, я получил следующий рисунок: введите здесь описание изображения

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

Учитывая, что первый график правильный, в чем ошибка моей формулы/процедуры для расчета пропускной способности?


person HBv6    schedule 29.11.2013    source источник
comment
@pnuts Что ты имеешь в виду? Можете ли вы привести пример?   -  person HBv6    schedule 29.11.2013
comment
Ты прав. Я попытался подсчитать, сколько выборок у меня есть за каждые 1000 миллисекунд, но это ничего не меняет... Например: первая выборка = 1385731060500, последняя выборка = 1385731061394; разница=894 миллисекунды; образцы = 277. Итак, я попробовал: (277/894)*1000=~309 запросов в секунду. Но первый график за тот же период показывает пропускную способность ~90. Я даже пробовал с большими интервалами, но это еще хуже :\   -  person HBv6    schedule 29.11.2013


Ответы (2)


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

person HBv6    schedule 05.12.2013

Пропускную способность можно просмотреть в сводном отчете Jmeter и рассчитать, сохранив файл результатов теста в xml-файле в сводном отчете.

Throughput = Number of samples/(Max (ts+t) - Min ts)*1000
Throughput = (Number of samples/The difference between Maximum and minimum response time)*1000

По этой формуле вы можете рассчитать пропускную способность для каждого http-запроса в сводном отчете.

Пример:

Max Response Time = 1485538701633+569 = 1485538702202
Min Response Time = 1485538143112

Throughput = (2/1485538702202-1485538143112)*1000
Throughput = (2/1505) *1000
Throughput = 0.00132890*1000
Throughput = 1.3/sec

Вы можете прочитать больше с примерами здесь (http://www.wikishown.com/how-to-calculate-throughput-in-jmeter/), у меня есть хорошее представление о расчете пропускной способности.

person Rajesh Om    schedule 30.01.2017