Как обнаружить узкое место из тестирования производительности времени отклика
Время отклика для конкретной транзакции увеличивается между двумя запусками jmeter-тестов. Как обнаружить узкое место в этом случае?
1 ответ
Ну, то, что вы спросите, может заполнить тома для каждой архитектурной платформы и каждого типа программного обеспечения, которое вы используете. Есть несколько практических правил, которые могут решить вашу проблему.
В конечном итоге масштабируемость - это проблема ресурсов и их использования в машине, особенно ограниченных ресурсов... когда вы их выделяете... сколько вы их используете... когда вы их освобождаете... конечные ресурсы ядра верхнего уровня процессор, диск, память и сеть. Вы можете извлечь сотни субресурсов из них, таких как дескрипторы файлов в памяти, использование подкачки под диском, система и приложение под ЦП, повторная передача ошибок в сети и т. Д.
Чтобы понять, где существует ваше узкое место, нужно сначала определить ресурс, который подвергается воздействию во время замедления. Отсюда следует понять код, который обращается к указанному ресурсу во время рассматриваемого окна, а затем, наконец, какой сегмент кода является критическим разделом. Такие инструменты, как Dynatrace, NewRelic, Wiley и т. П., Создали бизнес-модель, помогающую отслеживать внутренние детали приложения, но вам все равно необходимо настроить часы и время отклика на время инцидента.
Мониторинг является ключевым и критическим. К сожалению, это область, которая осталась в восторге от большей части мира открытого кода. Давайте просто бросим груз! Интегрированный мониторинг? Ну, иди, подключи и вставь его для этого. Это та область, где коммерческие инструменты побеждают все инструменты с открытым исходным кодом. Затем следует анализ для интеграции данных мониторинга с данными ответов...
Поскольку вы смотрите на одно конкретное время отклика в своем тесте, это все-таки становится немного проще. Если вы не участвуете в разработке, перейдите к команде разработчиков и попросите список всех изменений кода из вашей последней протестированной сборки. Далее, вам нужно выделить в этом списке, какие из них вызываются во время вашего конкретного события, которое увеличилось во времени. Оттуда, если у вас есть изображение того, какой ресурс увеличился, вы можете быстро отсканировать код на предмет элементов, непосредственно связанных с использованием определенного ресурса. Например, если DISK увеличился, возможно, кто-то зарегистрировал код с включенным ведением журнала уровня DEBUG, и у вас есть перетаскивающая запись записей на диск. Может случиться так, что дескрипторы подключения к какому-либо объекту очищаются не так быстро, поэтому возникает проблема с памятью.
Надеюсь, это даст вам возможность изучить возможности