Есть ли разница между тестированием ab на localhost и имени хоста?
Я тестирую свой сайт, используя ab
как ab -n 10000 -c 1000 http://example.com/path
и я получил ответ как 160 #/second
, Но когда я проверяю это как ab -n 10000 -c 1000 http://localhost/path
ответ совершенно другой 1500 #/second
, Зачем?
2 ответа
Обычно вы не должны запускать генератор нагрузки (ab
или любой другой инструмент) на том же хосте, где тестируемое приложение живет как нагрузочное тестирование, сами по себе очень ресурсоемки, и вы можете столкнуться с ситуацией, когда тестируемое приложение и генератор нагрузки борются за один и тот же ЦП, ОЗУ, сеть, диск, Своп и т. Д.
Поэтому я бы порекомендовал запустить ab
с другого хоста в вашей интрасети, таким образом вы сможете получить более четкие результаты без вышеупомянутого взаимного вмешательства. Не забывайте следить за показателями работоспособности базовой ОС с помощью vmstat, iostat, top, sar и т. Д. Как на тестируемом приложении, так и на стороне генератора нагрузки - это должно дать вам более четкое представление о том, что происходит и каково влияние воспринимаемой нагрузки.
Вы также можете попробовать более продвинутый инструмент, как ab
имеет довольно ограниченные возможности нагрузочного тестирования, ознакомьтесь с инструментами нагрузочного тестирования с открытым исходным кодом: какой из них использовать? статья для получения дополнительной информации о наиболее известных бесплатных и открытых исходных решениях для нагрузочного тестирования (все перечисленные инструменты являются кроссплатформенными, поэтому вы сможете запускать их в Linux)
Насколько я понимаю, вы тестируете один и тот же веб-сайт в двух разных конфигурациях:
- http://example.com/path, который тестирует удаленный веб-сайт с вашего локального компьютера,
- http://localhost/path, который проверяет локальную копию веб-сайта на вашем локальном компьютере или тестируется непосредственно на компьютере, на котором размещен веб-сайт.
Тестирование вашего удаленного веб-сайта включает в себя сетевое соединение между вашим компьютером и удаленным сервером. при локальном тестировании все проходит через петлевой сетевой интерфейс, который, вероятно, на несколько порядков быстрее, чем ваше DSL-подключение к Интернету.