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

Preview:

Citation preview

ОПТИМИЗАЦИЯ ПРОИЗВОДИТЕЛЬНОСТИ:МАГИЯ ИЛИ МЕТОДИКА

Ярослав Киселев

Москва, 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

СПАСИБО ЗА ВНИМАНИЕ