Нагрузочное тестирование AB на локальном ip или доменном имени?
Я использую digitalocean как vps для своего веб-сервера. Я добавил вторую каплю с Ubuntu 18, которая является частью частной сети (функция digitalocean) с веб-сервером.
Я использую cloudflare в качестве моего DNS-провайдера, а также использую их SSL-сертификаты.
Какой самый точный нагрузочный тест с ab (** обратите внимание на http/https в приведенном ниже примере):
ab -n 100 -c 1 -k -H "Accept-Encoding: gzip, deflate" https://www.example.com/
Request per second : 12.66
ab -n 100 -c 1 -k -H "Accept-Encoding: gzip, deflate" http://www.example.com/
Request per second : 60.90
ab -n 100 -c 1 -k -H "Accept-Encoding: gzip, deflate" https://private.network.local.ip/
Request per second : 36.70
ab -n 100 -c 1 -k -H "Accept-Encoding: gzip, deflate" http://private.network.local.ip/
Request per second : 1849
Как я должен использовать ab
с http
или же https
а с доменным или локальным ip?
1 ответ
Надежный нагрузочный тест должен максимально приближенно отражать реальное использование приложения, в противном случае он не имеет смысла. Поэтому вы должны использовать те же настройки, что и реальные пользователи вашего приложения, мои ожидания таковы:
- доменное имя вместо IP-адреса
- протокол https
Есть ли причина для сравнения времени ответа вашей заявки с http://example.com/ который является живым сайтом? Вам следует сравнивать DNS-имя хоста вашего приложения с IP-адресом вашего приложения, в этом случае результаты должны совпадать
ab
это не лучший инструмент для имитации активности реальных пользователей, он в основном "забивает" один URL, который не представляет реальное поведение пользователя, реальных пользователей:- установить SSL-сессию один раз, по этому каналу осуществляется дальнейшая связь
- отправлять заголовки HTTP, которые могут вызвать сжатие ответа, уменьшая размер ответа
- в своих браузерах реализован HTTP-кэш, поэтому встроенные ресурсы, такие как изображения, скрипты, стили, шрифты и т. д., запрашиваются только один раз
- есть Cookies, которые представляют пользовательский сеанс
Исходя из всего вышесказанного, я бы порекомендовал перейти на более продвинутый инструмент нагрузочного тестирования, способный работать как настоящий браузер.