Я начал писать некоторые базовые тесты в JMeter и был удивлен, что измерения настолько отличаются от измерений Apache ab.
У меня есть гигабитная локальная сеть, соединяющая сервер Intel i7 с Nginx и тестовую машину i5 с JMeter или ab. Сначала я просто проверяю -из -скорости отклика домашней страницы Nginx.
ab -c 1 -n 100 http://testserver.local/
дает
Document Path: /
Document Length: 151 bytes
Concurrency Level: 1
Time taken for tests: 0.078 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 38400 bytes
HTML transferred: 15100 bytes
Requests per second: 1280.77 [#/sec] (mean)
Time per request: 0.781 [ms] (mean)
Time per request: 0.781 [ms] (mean, across all concurrent requests)
Transfer rate: 480.29 [Kbytes/sec] received
Этот результат стабильно воспроизводим, +/-несколько процентов.
В JMeter у меня есть 1 -пользовательская 100 -группа циклических потоков, содержащая:
Всего со 100 образцами каждый раз, когда я его запускаю, он дает крайне противоречивые результаты.Но самым поразительным фактом является то, что пропускная способность составляет всего 40 запросов в секунду (, а не 1280 ). Максимальный зарегистрированный показатель был 1030, и это было достигнуто только тогда, когда я увеличил до 10 000 сэмплов.
Правильно ли я считаю, что JMeter — неподходящий инструмент для простых нагрузочных тестов, потому что его накладные расходы слишком высоки для обеспечения точных измерений?