Профилирование и мониторинг приложений

Содержание

Слайд 2

Проблемы производительности

CPU
IO
Блокировки / Ожидания

Проблемы производительности CPU IO Блокировки / Ожидания

Слайд 3

CPU

С CPU бороться и просто и сложно одновременно
Изучение сложности алгоритмов (https://habrahabr.ru/post/188010)
Вертикальное и

CPU С CPU бороться и просто и сложно одновременно Изучение сложности алгоритмов
горизонтальное масштабирование
Использование других языков
Использование правильных алгоритмов
80% потери скорости находится в 20% кода

Слайд 4

IO

Сеть
Группировка запросов (к БД, к серверу)
Оптимистическая стратегия (chrome)
Пакетная обработка
Система хранения
Последовательное чтение
HDD (100

IO Сеть Группировка запросов (к БД, к серверу) Оптимистическая стратегия (chrome) Пакетная
мб/сек, 10 мс позиционирование, 1 байт=1 мегабайт)
SSDD (1000 мб/сек, 1 мс позиционирование , 1 байт=1 мегабайт)
SAN (2000 мб/сек, 50 мс позиционирование , 1 байт=100 мегабайт)
Логическая группировка данных (gamedev)

Слайд 5

Блокировки/ожидания

Приложение
Пул потоков
Уменьшение критических секций
Использование асинхронных операций (async/await)
БД
Партиции
Разные файлы (файлы партиций и файл

Блокировки/ожидания Приложение Пул потоков Уменьшение критических секций Использование асинхронных операций (async/await) БД
лога)
Правильные уровни изоляции
READ UNCOMMITTED
| READ COMMITTED
| REPEATABLE READ
| SNAPSHOT
| SERIALIZABLE

Слайд 6

Стратегия разработки

Оценка производительности
Мониторинг
Профилирование / оптимизация

Стратегия разработки Оценка производительности Мониторинг Профилирование / оптимизация

Слайд 7

Оценка производительности

Нагрузочное тестирование
Время отклика системы
Обычно меряют в персентилях
Потребляемые ресурсы
CPU
Память
Сеть
Порог 70% - надо

Оценка производительности Нагрузочное тестирование Время отклика системы Обычно меряют в персентилях Потребляемые
добавлять мощности
Инструменты
apache jmeter
yandex tank

Слайд 8

Мониторинг

Системы мониторинга
Performance monitor
Nagios
Заббикс
Prometheus
Системы виртуализации
ELK
Graphite

Мониторинг Системы мониторинга Performance monitor Nagios Заббикс Prometheus Системы виртуализации ELK Graphite

Слайд 9

Performance monitor

TypePerf.exe –q > counters.txt

Performance monitor TypePerf.exe –q > counters.txt

Слайд 10

Заббикс

Заббикс

Слайд 12

ELK стек

ELK стек

Слайд 13

Профилирование

Visual Studio
DotTrace
DotMemory

Профилирование Visual Studio DotTrace DotMemory

Слайд 14

Visual studio profiler

Sampling
Instrumentation
Elapsed
Application
Elapsed Exclusive
Application Exclusive

Visual studio profiler Sampling Instrumentation Elapsed Application Elapsed Exclusive Application Exclusive

Слайд 15

DotTrace

Удаленное профилирование
Даже на prod`е

DotTrace Удаленное профилирование Даже на prod`е