Как стать автором
Обновить
49
0
Вячеслав @polarnik

Performance Engineer

Отправить сообщение

Как ускорить запросы к InfluxDB разными способами

Время на прочтение12 мин
Количество просмотров3.3K

Как хранить результаты нагрузочных тестов так, чтобы работать с ними было удобно? Если команда нагрузки сталкивается с такой проблемой, то возникает необходимость хранения данных. В частности, требуется, чтобы они сразу соответствовали фильтрам, а также чтобы приходилось реже выполнять сложные агрегатные функции и получать результаты быстрее.

Меня зовут Вячеслав Смирнов, я ускоряю и тестирую инфраструктурные сервисы в Miro. Ещё я развиваю сообщество нагрузочников в telegram: делюсь там кое-какой экспертизой. В частности, если выполнять тесты производительности регулярно, по несколько раз в день, то вскоре в популярном хранилище тестов InfluxDB фильтровать результаты тестов производительности становится сложно. Сегодня я расскажу про 12 шагов, как можно ускорить InfluxDB. Основным из них является ускорение с помощью nginx кэширования. Пример использования кэширующего nginx, в качестве источника данных для Grafana можно найти тут. Все остальные примеры, которые мы будем разбирать я вынес сюда. А слайды оставил здесь.

Читать далее
Всего голосов 6: ↑5 и ↓1+4
Комментарии0

Атака не клонов, или Генерация и анализ тестовых данных для нагрузки. Часть 3

Время на прочтение8 мин
Количество просмотров1.7K

Итак, мы разобрались с генерацией данных и мне осталось рассказать об инструменте для получения  детальной статистики по базе данных, которую 85% разработчиков считает самым узким местом в системе. И о том, как с помощью анализа статистики ускорить эту самую систему, но не попасть в ловушку.

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии0

Атака не клонов, или Генерация и анализ тестовых данных для нагрузки. Часть 2

Время на прочтение7 мин
Количество просмотров7.7K

В предыдущей статье я рассказал о подготовке данных для тестирования, что данные лучше генерировать, а не клонировать. Теперь стоит подробно разобрать, как их генерировать. Есть несколько подходов к генерации данных: c SQL, Python, сериализацией. У всех из них есть свои плюсы, минусы и особенности, которые стоит учитывать.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

Атака не клонов, или Генерация и анализ тестовых данных для нагрузки. Часть 1

Время на прочтение6 мин
Количество просмотров3.3K

Как добиться необходимого контроля, удобства и даже скорости при подготовке тестовых данных для микросервисов и тестов производительности? В каких случаях лучше не генерировать XML и JSON файлы с помощью конкатенации строк? Зачем анализировать статистику по SQL запросам?

Меня зовут Вячеслав Смирнов, и я ускоряю дистанционное банковское обслуживание юридических лиц, а еще поддерживаю чат QA — Load & Performance в Телеграм, где сообщество инженеров по тестированию производительности обсуждает тестирование нагрузки.

Статья получилась длинной, поэтому сегодня я расскажу про подготовку тестовых данных для тестирования производительности и про то, как с помощью SQL, Pandas и Java эти данные готовить. Поговорим про анализ метрик и логов с точки зрения данных и с использованием InfluxDB, Grafana и прочих инструментов, А ещё о том, как может выглядеть хороший отчет по системе, в которой много данных. В следующих частях перейду к генерации и анализу тестовых данных для нагрузки.

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

Grafana, InfluxDB, два тега и одна сумма. Или как посчитать сумму подгрупп?

Время на прочтение12 мин
Количество просмотров32K

Всем привет!

Занимаюсь тестированием производительности. И очень люблю настраивать мониторинг и любоваться метриками в Grafana. А стандартом для хранения метрик в инструментах для подачи нагрузки является InfluxDB. В InfluxDB можно сохранять метрики из таких популярных инструментов, как:


Работая с инструментами по тестированию производительности и их метриками, накопил подборку рецептов программирования для связки Grafana и InfluxDB. Предлагаю рассмотреть интересную задачу, которая возникает там, где есть метрика с двумя и более тегами. Думаю, это не редкость. И в общем случае задача звучит так: подсчёт суммарной метрики по группе, которая делится на подгруппы.
Посчитаем тремя способами
Всего голосов 24: ↑24 и ↓0+24
Комментарии11

Однажды встретились JMeter и незнакомка…

Время на прочтение12 мин
Количество просмотров23K

Кадр из фильма «Дом у озера». Встреча (www.kinopoisk.ru)

Джим ещё не знал, как подойти к ней, с чего начать разговор и на каком языке его вести. Но он видел многое, владел языками и имел в рукаве не один козырь. И будучи уверенным в помощи верных друзей (это мы с вами) и забыв про сомнения, шёл на встречу судьбе.

Ниже рассказ о том, как Джим завоёвывал снова и снова сердце незнакомой системы. Не подумайте, что незнакомок было несколько. Она была одна, единственная, но такая разная, и от того истории будут следовать одна за другой.
Приятного чтения
Всего голосов 21: ↑19 и ↓2+17
Комментарии5

TailSampler — паралельная отправка GET-запросов в Apache.JMeter

Время на прочтение14 мин
Количество просмотров13K

 

1. Назначение плагина «HTTP Request Tail»


Плагин упрощает загрузку встроенных ресурсов, позволяет параллельно выполнять указанные GET-запросы. Делая тест максимально близким к работе браузера по составу загружаемых ресурсов и по способу загрузки этих ресурсов.

TailSampler выручает если нужно:

  • выполнить группу GET-запросов паралельно;
  • выполнить 1000 GET-запросов, не создавая 1000 компонентов HTTP Request;
  • протестировать сайт, активно использующий AJAX, Adobe Flash, Adobe AIR, SilverLigth, ...
Всего голосов 13: ↑12 и ↓1+11
Комментарии6

Выбираем html-парсер для Apache.JMeter

Время на прочтение11 мин
Количество просмотров9.2K
Среднее качество полноты извлечения ссылок на встроенные ресурсы html-парсерами Apache.JMeter
Среднее качество работы парсеров (для семи сайтов)

Предлагаю:

  • посчитать среднее качество полноты извлечения ссылок на встроенные ресурсы html-парсерами Apache.JMeter;
  • проверить правда ли извлечение ссылок в Apache.JMeter 3.0 стало более полным;
  • испытать в деле плагин CsvLogWriter.

Как гласит народная мудрость: Верить верь, но…
проверь
Всего голосов 10: ↑10 и ↓0+10
Комментарии5

Аналитический отчёт по трейсу Microsoft SQL Server

Время на прочтение23 мин
Количество просмотров18K
Аналитический отчёт по трейсу Microsoft SQL Server

Постановка задачи


Выявить узкие места при работе приложения с базами данных. Составить отчёт по производительности sql-запросов, проанализировать ошибки и взаимоблокировки, составить сравнительные отчёты, посчитать степень покрытия состава хранимых процедур тестами, построить диаграммы.

Тестирование проводится регулярно. Поэтому отчёты должны формировать автоматически, быть стандартизованы, легко сравниваться между собой.

Используемые технологии:
  • Microsoft SQL Server;
  • Microsoft Office Excel;
  • Комплекс sql-запросов, организованный в проект SQLProfilerReportHelper;
  • Инструмент нагрузочного тестирования с возможностью выполнить sql-запрос (JMeter, Visual Studio Ultimate, ...);


Уровень 300 (для профессионалов).

Если коротко, то порядок действий для формирования отчётов по готовому трейсу таков:
  1. запустить SQLProfilerReportHelper, кликнуть по кнопкам;
  2. выполнить выборку записей из таблиц-отчётов, скопировать результаты в буфер обмена;
  3. запустить Microsoft Office Excel, вставить записи из буфера в автоматически форматируемую таблицу и сохранить документ-отчёт.

Инструмент и шаблон отчёта доступны для скачивания SQLProfilerReportHelper.
Если вам интересно ознакомиться с описанием инструмента и отчётов и порядком их составления, читайте далее.
Тысячи символов, десятки картинок и примеров кода
Всего голосов 8: ↑6 и ↓2+4
Комментарии1

Классификация видов тестирования

Время на прочтение5 мин
Количество просмотров214K
Учил студентов предмету «Тестирование и отладка программного обеспечения» в ИжГТУ. Структуру курса обучения построил на основе классификации видов тестирования.
Виды тестирования

О ней и будет сей рассказ.
Всего голосов 71: ↑64 и ↓7+57
Комментарии35

Информация

В рейтинге
Не участвует
Откуда
Армения
Зарегистрирован
Активность

Специализация

Software Performance Engineer
Lead
PostgreSQL
Java
High-loaded systems
Kubernetes