Является ли мой сервер слишком слабым для выполнения простого плана тестирования JMeter с 150 одновременными пользователями? - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь создать нагрузочный тест с JMeter.У меня есть довольно простой план тестирования, который:

  • Содержит все стандартные HTTP Cookie Manager, Cache Manager и т. Д.
  • Содержит конфигурацию набора данных CSV с одним миллионом допустимых имен пользователей.
  • Получает доступ к странице входа и фиксирует имя пользователя для авторизации.
  • Затем обращается к странице, которая выполняет некоторые запросы к базе данных, и
    отображает результат.

Я могу запустить его успешно с 80 одновременными пользователями и временем разгона 30 секунд.Если я пойду выше этого, то все начнет склеиваться.Большую часть времени тест просто застревает, и мне в итоге приходится отменить его с помощью Ctrl + C.Если после этого я просматриваю логи, я не получаю никаких ошибок, просто кажется, что я прервал тестирование в середине.Я также попытался запустить свой план тестирования в Тельце, но он также зависает, и если я посмотрю в журналах впоследствии, ошибок нет.

Я сделал большую часть того, что перечислено в этом руководстве. 9 Простые решения для нагрузочного теста JMeter. Ошибка «Недостаточно памяти» , но в любом случае просто проясню некоторые вещи:

  • Я не запускаю свои тесты в графическом интерфейсе.
  • У меня нет слушателей в плане тестирования.
  • Я увеличил размер кучи Java до 28 ГБ.
  • Я получаю встроенные ресурсы, но только из домена.
  • Среда, в которой размещается веб-страница, должна легко обрабатывать более 150 пользователей.

Сервер Iиспользовать довольно слабую виртуальную машину.Когда я запускаю тест и смотрю сверху, средняя загрузка составляет 20-30, что, очевидно, слишком высоко, учитывая, что сервер имеет 4 ядра.Но когда я смотрю онлайн, кажется, что люди легко запускают тесты с 3-500 одновременными пользователями на обычных ноутбуках, поэтому я все еще подозреваю, что есть какая-то другая ошибка.

Характеристики сервера:

  • Виртуальная машина под управлением Oracle Linux Server 7.5
  • 4 ядра Intel Xeon E5-2650 v3 @ 2,3 ГГц
  • 32 ГБ ОЗУ

Есть что-нибудь очевидноечто мне не хватает или мой сервер просто слишком слаб? `

Заранее спасибо!С наилучшими пожеланиями

1 Ответ

0 голосов
/ 27 ноября 2018
  1. Ваш параметр кучи может быть слишком высоким для вашей настройки, вы должны быть в состоянии имитировать 150 одновременных пользователей, используя пару гигабайт кучи без каких-либо проблем.Так что это может быть случай, когда ваша операционная система делает огромные подкачки , что вызывает высокий IO диска.

  2. Другая причина заключается в том, что JMeter ожидает ответа до отправки следующего запроса, и если у вас нет разумных таймаутов, а сервер не отвечает - ваш тест никогда не закончится.Так что рассмотрите возможность введения времени ожидания соединения и ответа, лучше всего использовать Значения HTTP-запроса по умолчанию , таким образом вы можете установить время ожидания в одном месте, и они будут распространяться на все HTTP-запрос сэмплеров

    enter image description here

  3. Подумайте о настройке мониторинга вашего сервера, так как он может просто испытывать недостаток ЦП или ОЗУ, поэтому не будет отвечать.Для этого вы можете использовать JMeter PerfMon Plugin или SSHMon Samples Collector для этого

  4. Проверьте приложение в тестовой инфраструктуре и компонентах промежуточного программного обеспечения (приложение / веб-сервер), база данных, балансировщики нагрузки, обратные прокси и т. д.).Эти парни должны быть настроены на высокие нагрузки, так как их конфигурация по умолчанию хороша для разработки / отладки, но не для нагрузочного тестирования / производства.

  5. Подумайте о повторном запуске теста с помощью инструмента профилирования или APM Tool , подключенного к вашему приложению - таким образом вы сможетесказать, что является узким местом, то есть какой компонент замедляет работу всей системы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...