Честное перформанс-тестирование Дмитрий Пивоваров ZeroTurnaround PPT

Многопользовательская сущность веб-приложений
Широта аудитории приложений накладывает свой отпечаток на специфику работы. Одно приложение одновременно может использоваться огромным количеством людей. Мы уже рассматривали вопрос нагрузочного тестирования, но также следует обратить внимание на то, что в число пользователей могут входить представители разных культур, языков и религий. Нам необходимо помнить об этом, особенно если речь идет о тестировании международного приложения.

  • Одна из самых больших проблем связана с эффектами дискретизации, когда выборка содержит повторяющиеся элементы.
  • Так устроена психика – мы любое признание вины или ошибки принимаем как негатив, который может повлиять на отношение начальства или даже на уровень оплаты труда.
  • Не нужно помнить определения сложных статистических метрик, чтобы понять происходящее.
  • Идея алгоритма базируется на динамическом программировании.

Соответствующий график плотность распределения выглядит не очень приятно. У нас есть одна большая мода около 200ms, маленькая мода между одной и двумя секундами, а также некоторое количество неприлично больших выбросов. И такой график мы получили на одной простой операции по созданию файла.

Теория экстремальных значений

Есть общие принципы, которые применимы к определенным типам тестов или программных продуктов. Руководствоваться ими или нет — решать тебе, я лишь поделюсь своими наблюдениями по этому поводу. В теории перед тем, как начать программировать, нужно придумать спроектировать архитектуру будущего софта.

перформанс тестирование

Не всем программистам он знаком, но если вы работаете с данной языковой версией и проводите нагрузочные испытания, то Gatling – оптимальный вариант. Современный IT-рынок представляет десятки инструментов для проведения тестов на бесплатной и коммерческой основе. Рассмотрим 11 популярных программ для нагрузочного тестирования. Универсальных советов по тестированию производительности нет и быть не может, поскольку каждый продукт индивидуален.

Бизнес-кейсы

Выбросы — это не всегда экстремальные значения, это просто значения, которые далеки от общего скопления элементов выборки. В блоге Брендана Грега, который в ту пору был ведущим перформанс-инженером в Нетфликсе, описан расчет метрики mvalue, которая позволяет оценивать степень мультимодальности. Аналогичная проблема возникает в случае существования большого количества мод. Только Харрел-Дэвис способен из нормально разделять, в остальных методах они чаще всего сливаются. Полагаю, что вы подумали, что слева у нас примерно равномерное распределение, а справа четырехмодальное распределение. Но на самом деле обе гистограммы построены на одной и той же выборке.

Это доставляет массу неудобств при использовании его в CI. В случае разработки очередного убийцы конкурента Facebook мы бы проверяли сценарии, относящиеся к загрузке картинок, просмотру профиля и прочему. Тут как и с любыми требованиями — нужно отталкиваться от того, что в итоге должно получиться, и не забывать про здравый смысл. Ведь если твой REST API отправляет ответ за одну секунду, а WEB UI потом десять секунд отображает результат, то оптимизировать бэкенд нужно не в первую очередь.

Квантильная оценка плотности (QRDE)

Большинство веб-ресурсов в том или ином объеме требуют проверки текстов на предмет отсутствия грамматических ошибок и опечаток. Улучшение каждого метода на четыре десятых процента улучшает итоговый результат на целых 7.5%. Надеюсь, что однажды я соберу все такие решения в Perfolizer, так что следите за обновлениями. Непараметрические алгоритмы поддерживают распределения произвольной формы.

перформанс тестирование

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

Проблема: агрегация истории коммитов

В большинстве случаев для тестирования производительности маленьких и средних систем виртуальных машин вполне хватает. Но иногда проблемы, связанные с высокими нагрузками, находятся только на железе. Например, я в свое время столкнулся с багом пакета lvm2 на Ubuntu. Внутри виртуалок у меня так и не получилось его воспроизвести, в то время как на железном сервере простой bash-скрипт на пятнадцать строчек с этим справился. Кроме того, очень тяжело находить проблемы, связанные с производительностью и высокой нагрузкой дисковых подсистем, гипервизоров и ядра на виртуальных окружениях. Про то, что любые тесты необходимо запускать на CI, говорят все.

перформанс тестирование

В субботу наши тесты начали внезапно ходить немного быстрее. У нас были настроены алерты на все точки разладки, поэтому мы сразу об этом узнали. Порадовались, что кто-то, видимо, что-то прооптимизировал, перформанс улучшился, мы об этом узнали — красота. На вашем CI-сервере или продакшн-сервере перформанс тестирование уже наверняка есть много полезных данных. Потратив немного усилий, можно добавить к ним очень мощную аналитику и бесплатно узнавать о важных перформанс-проблемах максимально оперативно. Это позволит починить данные проблемы до того, как пользователи начнут на них жаловаться.

сентября в Москве прошла 8-я конференция Перфоманс Конф#8 – крупнейшая встреча экспертов по нагрузочному тестированию в России.

Основная идея в том, что мы будем описывать распределения с помощью интервалов, в которые попадает основная масса значений. Ведь именно это нас на самом деле интересует на первом этапе перформанс-исследования. Нам хочется примерно узнать сколько времени занимает тот или иной метод. Ответ «примерно 100–200 мс» зачастую нас вполне устроит. И вроде бы большое значение стандартного отклонения должно было нас немного насторожить.

Общая польза от метода

Брать значения p более 0.86 смысла не имеет, мы будем терять как в эффективности, так и в робастности. А вот среди значений p между 0.5 и 0.86 мы можем найти то, которое даст разумный баланс между робастностью и эффективностью. Медианное абсолютное отклонение — максимально робастное, точка перелома равна 0.5. И это не только Гауссова эффективность, которая в данном случае рассчитывается по отношению к дисперсии оценок стандартного отклонения. В то время, как стандартное отклонение крайне редко бывает нулевым, для медианного абсолютного отклонения это обычное дело.

Close My Cart
Close Wishlist
Recently Viewed Close

Close
Navigation
Categories