Post on 13-Jan-2017
ОПТИМИЗАЦИЯ ПРОИЗВОДИТЕЛЬНОСТИ:МАГИЯ ИЛИ МЕТОДИКА
Ярослав Киселев
Москва, 13 октября 2016
Эксперт по оптимизации производительности приложений
2
ГДЕ ИСКАТЬ ПРИЧИНУ ПРОБЛЕМЫ?
SQL
Веб-сервисы
IO
БлокировкиCPU
Сборка мусора Неоптимальный план Кеш данных
IO
БлокировкиCPU
Память
CPU
JavaScript
Статическийконтент
Алгоритмы
Браузер Сервер приложений База данных
3
КАК ЭТО ВЫГЛЯДИТ ОБЫЧНО?
4
КАК ПРИНИМАЮТСЯ РЕШЕНИЯ?
- Добавляй кэша!- Перенести базу на SSD
- Добавим еще памяти- Нужно больше инстансов!
- Переписать все на С++- Переходим на NoSQL
Администраторы СУБДАдминистраторы приложенийРазработчики...
5
КАК ЭТО ВЫГЛЯДИТ НА САМОМ ДЕЛЕ?
- Добавляй кэша!- Перенести базу на SSD
- Добавим еще памяти- Нужно больше инстансов!
- Переписать все на С++- Переходим на NoSQL
6
НАМ ЭТО НЕ ПОДХОДИТ
7
УЖЕ НЕМНОГО ЛУЧШЕ
SQLWeb Services
IO
БлокировкиCPU
Сборка мусораНеоптимальный план
Кеш данных
IO
БлокировкиCPU
ПамятьCPU
JavaScript
Статическийконтент
Алгоритмы
Браузер База данных
?
?
?
? ?
?
Сервер приложений
8
СБОР ИНФОРМАЦИИ – ТРУДОЕМКАЯ РАБОТА
База данныхСервер приложений
9
НА ПОМОЩЬ ПРИХОДИТ APM
10
ВСЕВИДЯЩЕЕ ОКО APM
11
ВСЕВИДЯЩЕЕ ОКО APM
12
КЕЙС №1
13
КЕЙС №1. АВИАДВИГАТЕЛЬ
• Приложение Teamcenter (Siemens) – используетсяна всем цикле производства
• Периодическое снижение производительностипосле обновлений ПО
• Отсутствие обратной связи от разработчика
14
КЕЙС №1. АВИАДВИГАТЕЛЬ
15
КЕЙС №1. АВИАДВИГАТЕЛЬ
• Повышение производительности более чем на 54%• Проблемы и причины видны сразу в едином представлении• Снижение времени простоя приложения
16
КЕЙС №2. ГРИНАТОМ
17
КЕЙС №2. ГРИНАТОМ
50000 тысяч пользователей70 предприятий в холдинге
18
КЕЙС №2. ГРИНАТОМ
19
КЕЙС №3. ВЫСОКОНАГРУЖЕННАЯ СИСТЕМА
20
КЕЙС №3. ВЫСОКОНАГРУЖЕННАЯ СИСТЕМА
>20000 пользователей10000 транзакций в секунду
35000 SQL-запросов в СУБД в секунду
21
КЕЙС №3. ВЫСОКОНАГРУЖЕННАЯ СИСТЕМА
Что предпринимали?
• Настройка приложения, OS, СУБД• Перевод СУБД на SSD• Увеличение мощностей приложения
22
КЕЙС №3. ВЫСОКОНАГРУЖЕННАЯ СИСТЕМА
• Восстановление работоспособности за несколько рабочих дней• Найдены потенциальные узкие места• Рекомендации по избежанию подобных проблем в будущем• Мониторинг приложения на постоянной основе
23
КЕЙС №3. ВЫСОКОНАГРУЖЕННАЯ СИСТЕМА
24
КЕЙС №3. ВЫСОКОНАГРУЖЕННАЯ СИСТЕМА
25
КЕЙС №3. ВЫСОКОНАГРУЖЕННАЯ СИСТЕМА
26
КЕЙС №3. ВЫСОКОНАГРУЖЕННАЯ СИСТЕМА
Обращение к внешним ресурсам• OracleDB• Веб-сервисы
Время ушло на 3 вызовавеб-сервиса
Ярослав КиселевЭксперт по оптимизации производительности приложений
111033, Москва, ул. Волочаевская, д.5, к.1
croc@croc.ru
croc.ru
Т: (495) 974 22 74Ф: (495) 974 22 77
СПАСИБО ЗА ВНИМАНИЕ