SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
Анализ данных о 
производительности 
систем 
Алексей Лавренюк, Яндекс
Предмет изучения 
• Система анализирует поток 
событий и ищет в нем важные 
• Данные поступают пачками по 
несколько миллионов событий 
• Пачки поступают регулярно, 
размеры пачек варьируются 
• Нужно успевать обработать 
пачку, пока не пришла новая 
изображение куплено на http://ru.fotolia.com
Что мы хотим знать 
• Запас производительности 
• Уметь сравнивать стенды и 
релизы 
• Следить за трендами и замечать 
нештатные ситуации 
Нам нужен градусник. Но не 
средняя температура по больнице! 
изображение куплено на http://ru.fotolia.com
Стрельбы 
• Готовим тестовый стенд: танк и мишень 
• Собираем патронную ленту 
• Стреляем линейно возрастающей нагрузкой и смотрим, что происходит с 
системой
Почему это может не работать 
• Пакетная обработка логов событий: несколько миллионов событий в 
каждом 
• История важна: нельзя сгенерировать синтетическую нагрузку заданного 
уровня. Можно только хитро умножить входную нагрузку на 
коэффициент.
Что внутри 
• Три мастера, которые ставят задачки 
шестнадцати машинкам 
• Лог — это табличка MySQL с 
событиями. Одна строка — одно 
событие 
• Над каждым логом колдуют 
множество фильтров на разных 
машинках 
• Фильтры зависят друг от друга и 
должны синхронизироваться 
Знать про архитектуру — очень важно! 
Лог 
событий 
Размеченный 
лог 
Накапливается 
история
Огонь, вода и люди работают 
Смотрим на приборы 
изображение куплено на http://ru.fotolia.com
Бизнес-метрики 
• Число событий в каждом логе 
• Время обработки каждого лога 
• Время работы каждого фильтра 
• Время отставания и размер очереди 
изображение куплено на http://ru.fotolia.com
Системные метрики 
• Загруженность процессора по ядрам 
• Процессор для важных процессов 
• Память: общие метрики и для 
важных процессов 
• Диск, сеть и т.д. 
• Метрики MySQL 
изображение куплено на http://ru.fotolia.com
Что можно увидеть 
• Резкие изменения метрик, 
например, изменение утилизации 
ресурсов и времен обработки 
логов во время экспериментов 
• Следить за важными для бизнеса 
метриками, например, за 
отставанием или размером 
очереди
Как докопаться до сути 
Выбор метрик и поиск зависимостей 
изображение куплено на http://ru.fotolia.com
Графиков много. Очень много 
• Можно увидеть, что происходит прямо 
сейчас или что происходило в прошлом 
• Но аномалии не видны сразу, а иногда 
не видны вообще
Независимые и зависимые 
• Размер входных логов, их число и 
характер содержимого — независимые 
метрики 
• Утилизация процессора, памяти, время 
обработки одного лога — зависимые 
метрики 
• Уменьшить число измерений! 
изображение куплено на http://ru.fotolia.com
Ищем корреляции в метриках 
• Множество методов мультивариативного 
анализа 
• Но у нас сработала интуиция и метод проб и 
ошибок: нам вообще важно только время 
обработки лога. От чего оно зависит?
Эврика! 
• Scatter plot 
• Время обработки зависит (только) от общего числа событий в логе 
• Линейность на основном участке и коэффициент пропорциональности
Большие логи 
• На больших логах наблюдается нелинейный рост времен обработки
Маленькие логи 
• Даже пустые логи обрабатываются за ненулевое время
Выбросы 
• Хочется понять, откуда они
Сравнение наблюдений 
• Две группы точек на одном графике: два периода или два стенда
Добавляем динамичности 
Взрывы и вертолеты 
изображение куплено на http://ru.fotolia.com
Временное измерение 
• Добавляем точки в 
реалтайме 
• Прозрачность показывает 
«старение» точки 
• Можно узнать, какая точка 
для какого лога 
Интерактивные инструменты 
для работы с данными 
качественно изменяют 
процесс
Зачем нам это 
• Back-to-back тесты 
• Сравнение теста и 
продакшна 
Хотим кликнуть в 
выбросы и увидеть 
детали
Зависимости фильтров 
• Автоматическое 
построение и визуализация 
графа зависимостей 
• Взвешивание графа на 
реальных данных и поиск 
критического пути 
• Сбор статистики о частых 
критических путях 
• Отображение критического 
пути для любой точки на 
графике
Критические пути 
• Критические пути зависят от 
входных данных 
• Оптимизировать то, что лежит на 
критическом пути: паузы, времена 
ожидания и фильтры 
• Чтобы оптимизировать, надо 
увидеть
Следим за трендами 
Автоматический анализ изменений 
изображение куплено на http://ru.fotolia.com
Линейная регрессия 
• Метод наименьших квадратов 
• Шум влияет на результат 
• Сложно найти выбросы
Кластеризация 
• Много методов, мы выбрали 
DBSCAN (density-based spatial 
clustering of applications with 
noise) 
• Позволяет отсеять шум 
• И заодно выявляет выбросы 
• Наблюдаем за долгосрочными 
трендами
Как исследовать 
производительность 
• Нарисовать архитектурную схему 
• Научиться снимать метрики и 
смотреть на них 
• Найти входные и выходные метрики 
• Найти корреляции между ними 
• Научиться анализировать конкретные 
точки 
• Автоматизировать наблюдения изображение куплено на http://ru.fotolia.com
Гвозди и микроскопы 
Что мы использовали в работе 
изображение куплено на http://ru.fotolia.com
Метрики и графики 
• Diamond — инструмент для сбора системных метрик. 
https://github.com/BrightcoveOS/Diamond 
• Graphite — сервер хранения и обработки временных рядов. 
http://graphite.wikidot.com/
Анализ данных 
• SciPy — научный фреймворк для Python. 
http://www.scipy.org/ 
• ipython notebook — интерактивный web-shell, в котором можно 
экспериментировать с вашими данными 
• numpy, pandas — библиотеки для работы с данными 
• scikit-learn — библиотека машинного обучения (регрессия, 
кластеризация) 
• networkX — библиотека для работы с графами 
https://networkx.github.io/
Визуализация 
• Highcharts — хорошие графики из коробки. Бесплатно для 
некоммерческих проектов. 
http://www.highcharts.com/ 
• d3.js — библиотека для создания интерактивной визуализации. 
http://d3js.org/ 
• Rickshaw — библиотека для работы с графиками, поверх d3.js 
http://code.shutterstock.com/rickshaw/ 
• yEd — удобный редактор графов 
http://www.yworks.com/en/products/yfiles/yed/
Почитать 
• Data Analysis with Open Source Tools (By Philipp K. Janert)
Алексей Лавренюк 
twitter: @direvius 
community: https://clubs.ya.ru/yandex-­‐tank 
чатик: https://gitter.im/yandex/yandex-­‐tank 
И да пребудет с вами Сила

Weitere ähnliche Inhalte

Was ist angesagt?

Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)
 Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo) Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)
Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)
Ontico
 
Сервер-агрегатор на python (аля Xscript FEST), Сумин Андрей, Сабуренков Михаи...
Сервер-агрегатор на python (аля Xscript FEST), Сумин Андрей, Сабуренков Михаи...Сервер-агрегатор на python (аля Xscript FEST), Сумин Андрей, Сабуренков Михаи...
Сервер-агрегатор на python (аля Xscript FEST), Сумин Андрей, Сабуренков Михаи...
Fuenteovejuna
 

Was ist angesagt? (20)

Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...
Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...
Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...
 
Разработка систем управления
Разработка систем управленияРазработка систем управления
Разработка систем управления
 
Тестирование больших данных
Тестирование больших данныхТестирование больших данных
Тестирование больших данных
 
TMPA-2013 Senov: Applying OLAP and MapReduce Technologies for Performance Tes...
TMPA-2013 Senov: Applying OLAP and MapReduce Technologies for Performance Tes...TMPA-2013 Senov: Applying OLAP and MapReduce Technologies for Performance Tes...
TMPA-2013 Senov: Applying OLAP and MapReduce Technologies for Performance Tes...
 
Проектирование радиолокационных систем
Проектирование радиолокационных систем Проектирование радиолокационных систем
Проектирование радиолокационных систем
 
разработка бизнес приложений (7)
разработка бизнес приложений (7)разработка бизнес приложений (7)
разработка бизнес приложений (7)
 
TMPA-2013: Shipin System-C Control Points
TMPA-2013: Shipin System-C Control PointsTMPA-2013: Shipin System-C Control Points
TMPA-2013: Shipin System-C Control Points
 
Андрей Кондрашов, Банк Москвы. «АБС в крупном Банке. Тестирование PostgreSQL...
Андрей Кондрашов, Банк Москвы.  «АБС в крупном Банке. Тестирование PostgreSQL...Андрей Кондрашов, Банк Москвы.  «АБС в крупном Банке. Тестирование PostgreSQL...
Андрей Кондрашов, Банк Москвы. «АБС в крупном Банке. Тестирование PostgreSQL...
 
Анализируем результаты тестирования производительности с Graphite и Grafana
Анализируем результаты тестирования производительности с Graphite и GrafanaАнализируем результаты тестирования производительности с Graphite и Grafana
Анализируем результаты тестирования производительности с Graphite и Grafana
 
Rx
RxRx
Rx
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий Насретдинов
 
Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)
 Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo) Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)
Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)
 
TMPA-2015: Multi-Module Application Tracing in z/OS Environment
TMPA-2015: Multi-Module Application Tracing in z/OS EnvironmentTMPA-2015: Multi-Module Application Tracing in z/OS Environment
TMPA-2015: Multi-Module Application Tracing in z/OS Environment
 
Дмитрий Кремер, МИА «Россия сегодня» (РИА Новости). «Построение новостного we...
Дмитрий Кремер, МИА «Россия сегодня» (РИА Новости). «Построение новостного we...Дмитрий Кремер, МИА «Россия сегодня» (РИА Новости). «Построение новостного we...
Дмитрий Кремер, МИА «Россия сегодня» (РИА Новости). «Построение новостного we...
 
Garbage collector
Garbage collectorGarbage collector
Garbage collector
 
Развертывание алгоритмов на ПЛИС
Развертывание алгоритмов на ПЛИСРазвертывание алгоритмов на ПЛИС
Развертывание алгоритмов на ПЛИС
 
Борис Верюгин, Диасофт Платформа. «Автоматизированные механизмы миграции прил...
Борис Верюгин, Диасофт Платформа. «Автоматизированные механизмы миграции прил...Борис Верюгин, Диасофт Платформа. «Автоматизированные механизмы миграции прил...
Борис Верюгин, Диасофт Платформа. «Автоматизированные механизмы миграции прил...
 
Параллельные и распределенные вычисления
Параллельные и распределенные вычисленияПараллельные и распределенные вычисления
Параллельные и распределенные вычисления
 
Сервер-агрегатор на python (аля Xscript FEST), Сумин Андрей, Сабуренков Михаи...
Сервер-агрегатор на python (аля Xscript FEST), Сумин Андрей, Сабуренков Михаи...Сервер-агрегатор на python (аля Xscript FEST), Сумин Андрей, Сабуренков Михаи...
Сервер-агрегатор на python (аля Xscript FEST), Сумин Андрей, Сабуренков Михаи...
 
Database First! О распространённых ошибках использования РСУБД
Database First! О распространённых ошибках использования РСУБДDatabase First! О распространённых ошибках использования РСУБД
Database First! О распространённых ошибках использования РСУБД
 

Ähnlich wie Применение статистических методов и инструментов для анализа производительности систем, Алексей Лавренюк (Яндекс)

Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на Java
Alex Chistyakov
 
Cистема внутренней статистики Odnoklassniki.ru
Cистема внутренней статистики Odnoklassniki.ruCистема внутренней статистики Odnoklassniki.ru
Cистема внутренней статистики Odnoklassniki.ru
odnoklassniki.ru
 
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Ontico
 
RuSIEM. Потребители. Состав продукта. Отличия. Применение.
RuSIEM. Потребители. Состав продукта. Отличия. Применение.RuSIEM. Потребители. Состав продукта. Отличия. Применение.
RuSIEM. Потребители. Состав продукта. Отличия. Применение.
Olesya Shelestova
 
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...
Ontico
 
Александр Шарак, "Одноклассники"
Александр Шарак, "Одноклассники"Александр Шарак, "Одноклассники"
Александр Шарак, "Одноклассники"
Ontico
 
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Yandex
 
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
Yandex
 
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Ontico
 
Архитектура А/Б тестирования: сделай сам
Архитектура А/Б тестирования: сделай самАрхитектура А/Б тестирования: сделай сам
Архитектура А/Б тестирования: сделай сам
Sergey Xek
 

Ähnlich wie Применение статистических методов и инструментов для анализа производительности систем, Алексей Лавренюк (Яндекс) (20)

Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на Java
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитики
 
Cистема внутренней статистики Odnoklassniki.ru
Cистема внутренней статистики Odnoklassniki.ruCистема внутренней статистики Odnoklassniki.ru
Cистема внутренней статистики Odnoklassniki.ru
 
SIEM для ИТ
SIEM для ИТSIEM для ИТ
SIEM для ИТ
 
Доклад "Мониторинг серверных приложений"
Доклад "Мониторинг серверных приложений"Доклад "Мониторинг серверных приложений"
Доклад "Мониторинг серверных приложений"
 
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
 
Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)
 
RuSIEM. Потребители. Состав продукта. Отличия. Применение.
RuSIEM. Потребители. Состав продукта. Отличия. Применение.RuSIEM. Потребители. Состав продукта. Отличия. Применение.
RuSIEM. Потребители. Состав продукта. Отличия. Применение.
 
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...
 
RuSIEM 2016
RuSIEM 2016RuSIEM 2016
RuSIEM 2016
 
Разработка методики тестирования производительности комплекса систем
Разработка методики тестирования производительности комплекса системРазработка методики тестирования производительности комплекса систем
Разработка методики тестирования производительности комплекса систем
 
Rusiem 2017_обзор
Rusiem 2017_обзорRusiem 2017_обзор
Rusiem 2017_обзор
 
Александр Шарак, "Одноклассники"
Александр Шарак, "Одноклассники"Александр Шарак, "Одноклассники"
Александр Шарак, "Одноклассники"
 
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
 
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
 
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
 
13 октября, DEV {web} - конференция о Highload веб-разработке. "Архитектура п...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Архитектура п...13 октября, DEV {web} - конференция о Highload веб-разработке. "Архитектура п...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Архитектура п...
 
Архитектура А/Б тестирования: сделай сам
Архитектура А/Б тестирования: сделай самАрхитектура А/Б тестирования: сделай сам
Архитектура А/Б тестирования: сделай сам
 
Cергей Aверин, Badoo
Cергей Aверин, BadooCергей Aверин, Badoo
Cергей Aверин, Badoo
 
YaC 2013 Notes
YaC 2013 NotesYaC 2013 Notes
YaC 2013 Notes
 

Mehr von Ontico

Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Ontico
 

Mehr von Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

Применение статистических методов и инструментов для анализа производительности систем, Алексей Лавренюк (Яндекс)

  • 1. Анализ данных о производительности систем Алексей Лавренюк, Яндекс
  • 2. Предмет изучения • Система анализирует поток событий и ищет в нем важные • Данные поступают пачками по несколько миллионов событий • Пачки поступают регулярно, размеры пачек варьируются • Нужно успевать обработать пачку, пока не пришла новая изображение куплено на http://ru.fotolia.com
  • 3. Что мы хотим знать • Запас производительности • Уметь сравнивать стенды и релизы • Следить за трендами и замечать нештатные ситуации Нам нужен градусник. Но не средняя температура по больнице! изображение куплено на http://ru.fotolia.com
  • 4. Стрельбы • Готовим тестовый стенд: танк и мишень • Собираем патронную ленту • Стреляем линейно возрастающей нагрузкой и смотрим, что происходит с системой
  • 5. Почему это может не работать • Пакетная обработка логов событий: несколько миллионов событий в каждом • История важна: нельзя сгенерировать синтетическую нагрузку заданного уровня. Можно только хитро умножить входную нагрузку на коэффициент.
  • 6. Что внутри • Три мастера, которые ставят задачки шестнадцати машинкам • Лог — это табличка MySQL с событиями. Одна строка — одно событие • Над каждым логом колдуют множество фильтров на разных машинках • Фильтры зависят друг от друга и должны синхронизироваться Знать про архитектуру — очень важно! Лог событий Размеченный лог Накапливается история
  • 7. Огонь, вода и люди работают Смотрим на приборы изображение куплено на http://ru.fotolia.com
  • 8. Бизнес-метрики • Число событий в каждом логе • Время обработки каждого лога • Время работы каждого фильтра • Время отставания и размер очереди изображение куплено на http://ru.fotolia.com
  • 9. Системные метрики • Загруженность процессора по ядрам • Процессор для важных процессов • Память: общие метрики и для важных процессов • Диск, сеть и т.д. • Метрики MySQL изображение куплено на http://ru.fotolia.com
  • 10. Что можно увидеть • Резкие изменения метрик, например, изменение утилизации ресурсов и времен обработки логов во время экспериментов • Следить за важными для бизнеса метриками, например, за отставанием или размером очереди
  • 11. Как докопаться до сути Выбор метрик и поиск зависимостей изображение куплено на http://ru.fotolia.com
  • 12. Графиков много. Очень много • Можно увидеть, что происходит прямо сейчас или что происходило в прошлом • Но аномалии не видны сразу, а иногда не видны вообще
  • 13. Независимые и зависимые • Размер входных логов, их число и характер содержимого — независимые метрики • Утилизация процессора, памяти, время обработки одного лога — зависимые метрики • Уменьшить число измерений! изображение куплено на http://ru.fotolia.com
  • 14. Ищем корреляции в метриках • Множество методов мультивариативного анализа • Но у нас сработала интуиция и метод проб и ошибок: нам вообще важно только время обработки лога. От чего оно зависит?
  • 15. Эврика! • Scatter plot • Время обработки зависит (только) от общего числа событий в логе • Линейность на основном участке и коэффициент пропорциональности
  • 16. Большие логи • На больших логах наблюдается нелинейный рост времен обработки
  • 17. Маленькие логи • Даже пустые логи обрабатываются за ненулевое время
  • 18. Выбросы • Хочется понять, откуда они
  • 19. Сравнение наблюдений • Две группы точек на одном графике: два периода или два стенда
  • 20. Добавляем динамичности Взрывы и вертолеты изображение куплено на http://ru.fotolia.com
  • 21. Временное измерение • Добавляем точки в реалтайме • Прозрачность показывает «старение» точки • Можно узнать, какая точка для какого лога Интерактивные инструменты для работы с данными качественно изменяют процесс
  • 22. Зачем нам это • Back-to-back тесты • Сравнение теста и продакшна Хотим кликнуть в выбросы и увидеть детали
  • 23. Зависимости фильтров • Автоматическое построение и визуализация графа зависимостей • Взвешивание графа на реальных данных и поиск критического пути • Сбор статистики о частых критических путях • Отображение критического пути для любой точки на графике
  • 24. Критические пути • Критические пути зависят от входных данных • Оптимизировать то, что лежит на критическом пути: паузы, времена ожидания и фильтры • Чтобы оптимизировать, надо увидеть
  • 25. Следим за трендами Автоматический анализ изменений изображение куплено на http://ru.fotolia.com
  • 26. Линейная регрессия • Метод наименьших квадратов • Шум влияет на результат • Сложно найти выбросы
  • 27. Кластеризация • Много методов, мы выбрали DBSCAN (density-based spatial clustering of applications with noise) • Позволяет отсеять шум • И заодно выявляет выбросы • Наблюдаем за долгосрочными трендами
  • 28. Как исследовать производительность • Нарисовать архитектурную схему • Научиться снимать метрики и смотреть на них • Найти входные и выходные метрики • Найти корреляции между ними • Научиться анализировать конкретные точки • Автоматизировать наблюдения изображение куплено на http://ru.fotolia.com
  • 29. Гвозди и микроскопы Что мы использовали в работе изображение куплено на http://ru.fotolia.com
  • 30. Метрики и графики • Diamond — инструмент для сбора системных метрик. https://github.com/BrightcoveOS/Diamond • Graphite — сервер хранения и обработки временных рядов. http://graphite.wikidot.com/
  • 31. Анализ данных • SciPy — научный фреймворк для Python. http://www.scipy.org/ • ipython notebook — интерактивный web-shell, в котором можно экспериментировать с вашими данными • numpy, pandas — библиотеки для работы с данными • scikit-learn — библиотека машинного обучения (регрессия, кластеризация) • networkX — библиотека для работы с графами https://networkx.github.io/
  • 32. Визуализация • Highcharts — хорошие графики из коробки. Бесплатно для некоммерческих проектов. http://www.highcharts.com/ • d3.js — библиотека для создания интерактивной визуализации. http://d3js.org/ • Rickshaw — библиотека для работы с графиками, поверх d3.js http://code.shutterstock.com/rickshaw/ • yEd — удобный редактор графов http://www.yworks.com/en/products/yfiles/yed/
  • 33. Почитать • Data Analysis with Open Source Tools (By Philipp K. Janert)
  • 34. Алексей Лавренюк twitter: @direvius community: https://clubs.ya.ru/yandex-­‐tank чатик: https://gitter.im/yandex/yandex-­‐tank И да пребудет с вами Сила