Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
Ярослав Киселев
Руководитель практики оптимизации
производительности ИТ-систем
КАК ПОВЫСИТЬ
ПРОИЗВОДИТЕЛЬНОСТЬ
IT-СИСТЕМ БЕЗ ВЛОЖЕНИЙ
В ЖЕЛЕЗО:
ЛАЙФХАКИ И УСПЕШНЫЕ КЕЙСЫ
на рынке
системной
интеграции
России
российских
компаний-
разработчиков
заказных
приложений
лидеров
российского
рынка ИТ-
услуг
9 центров разработки ПО
От Москвы
до Иркутска
Более 5 лет практики в области
оптимизации и внедрения систем
мониторинга производительности
ИТ-приложений
Широкий спектр
поддерживаемых
технологий и внедряемых
систем
Мультиотраслевая
практика – от банков
до промышленности
Опытная команда
сертифицированных
специалистов
О КОМПАНИИ КРОК
Примеры проблем с производительностью ПРИМЕРЫ ПРОБЛЕМ С ПРОИЗВОДИТЕЛЬНОСТЬЮ
4
В ЧЕМ ПРОБЛЕМА КОГДА ЧТО-ТО ПОШЛО НЕ ТАК...
6
ЗАКАЗЧИК: Инжиниринговая компания полного цикла
УСЛОВИЯ: Активное тиражирование системы документооборота
ПРОБЛЕМА: Снижение производительности и недоступность системы в часы-пик,
Кейс №1: Сокращение издержек на закупку оборудования
7
8
9
БЕДА, ВСЕ УПАЛО, ЧТО ДЕЛАТЬ?(
КАК ИНОГДА ПРИНИМАЮТСЯ РЕШЕНИЯ
ЧТО ОПТИМИЗИРУЕМ И ПОЧЕМУ?
A B
A B
A B
A
A
A
1. Какой вклад в общую производительность дают элементы IT?
2. Во сколько раз можно оптимизировать элемент IT?
3. Сколько это стоит?
ПЕРЕД ТЕМ КАК НАЧИНАТЬ ИНВЕСТИРОВАТЬ В IT
1669 SQL запросов
1921 SQL запросов
====================================================================================== | Id | Operation | Name | Time | Rows | Read | | | | | Active(s) | (Actual) | Bytes | ====================================================================================== | 0 | SELECT STATEMENT | | 449 | 4 | | | 1 | FILTER | | 449 | 4 | | | 2 | NESTED LOOPS OUTER | | 449 | 1M | | | 3 | NESTED LOOPS | | 449 | 1M | | | 4 | NESTED LOOPS | | 449 | 1M | | | 5 | NESTED LOOPS | | 449 | 1M | | | 6 | NESTED LOOPS | | 449 | 2M | | | 7 | NESTED LOOPS | | 449 | 2M | | | 8 | TABLE ACCESS FULL | TABLE1 | 452 | 2M | 1GB | | 9 | TABLE ACCESS BY INDEX ROWID | TABLE2 | 450 | 2M | 1GB | | 10 | INDEX UNIQUE SCAN | INDEX1 | 449 | 2M | 43MB | | 11 | INDEX UNIQUE SCAN | INDEX3 | 449 | 2M | 3MB | | 12 | TABLE ACCESS BY INDEX ROWID | TABLE3 | 449 | 1M | 416MB | | 13 | INDEX RANGE SCAN | INDEX4 | 449 | 1M | 357MB | | 14 | TABLE ACCESS BY INDEX ROWID | TABLE5 | 449 | 1M | 181MB | | 15 | INDEX UNIQUE SCAN | INDEX5 | 449 | 1M | 372MB | | 16 | TABLE ACCESS BY INDEX ROWID | TABLE2 | 449 | 1M | 1GB | | 17 | INDEX UNIQUE SCAN | INDEX1 | 449 | 1M | 166MB | | 18 | VIEW PUSHED PREDICATE | VIEW4 | 449 | 1M | | | 19 | NESTED LOOPS | | 449 | 1M | | | 20 | NESTED LOOPS | | 449 | 1M | | | 21 | TABLE ACCESS BY INDEX ROWID | TABLE6 | 449 | 1M | | | 22 | INDEX RANGE SCAN | INDEX6 | 449 | 1M | 250MB | | 23 | INDEX UNIQUE SCAN | INDEX7 | 449 | 1M | 24576 | | 24 | TABLE ACCESS BY INDEX ROWID | TABLE7 | 449 | 1M | 198MB | ======================================================================================
2 млн строк
4 строки
16
ЗАКАЗЧИК: Инжиниринговая компания полного цикла
УСЛОВИЯ: Активное тиражирование системы документооборота
ПРОБЛЕМА: Снижение производительности и недоступность системы в часы-пик
ЧТО СДЕЛАНО: Аудит и оптимизация производительности IT-систем
РЕЗУЛЬТАТ:
• Реализовали проект по повышению быстродействия за счет
оптимизации программного кода и настроек компонентов системы
• Стабильная работа системы (устранение сбоев в работе системы)
• Нагрузка на сервер СУБД и приложений снижена на 50%
• Экономия 20+ млн. руб на новом оборудовании
• Повышение эффективности использования старого оборудования,
• Повышение производительности ключевых бизнес-операций на 50%
Кейс №1: Сокращение издержек на закупку оборудования
17
ЗАКАЗЧИК: Нефтехимическая отрасль
УСЛОВИЯ: Эксплуатация и тиражирование системы документооборота
ПРОБЛЕМА: Снижение удовлетворенности пользователей быстродействием
Кейс №2: Оптимизация производительности ключевых
бизнес-операций
Название операции Сейчас,
сек
Хотим,
сек
Вход в систему 10 5
Открытие любого узла с докуменами 10-25 4
Сохранение документа 10-20 5
Формирование отчетов 30+ 20
… и еще 30 операций … …
СУБД
Поиск
Справочники
Оперативные данные
Исторические данные
Сервер асинхронного выполнения
Пользователи Сеть
Сервера
приложений
20
ЗАКАЗЧИК: Нефтехимическая отрасль
УСЛОВИЯ: Эксплуатация и тиражирование системы документооборота
ПРОБЛЕМА: Снижение удовлетворенности пользователей быстродействием
ЧТО СДЕЛАНО: профилирование целевых бизнес-операций,
рефакторинг алгоритмов и архитектуры, внедрение системы мониторинга
РЕЗУЛЬТАТ:
• Достижение целевых показателей в 90% кейсов
• Заложен фундамент для стабильной работы системы при дальнейшей
эксплуатации
• Экономия на покупке железа
Кейс №2: Оптимизация производительности ключевых
бизнес-операций
21
ЗАКАЗЧИК: Легкая промышленность
УСЛОВИЯ: E-com площадка, высоконагруженная СУБД Oracle
ПРОБЛЕМА: Периодическое снижение производительности в «горячие» периоды
Кейс №3: Не все аудиты одинаково полезны
Рекомендации по
результатам аудита
Нормального человека Курильщика
Наиболее тяжелые запросы - это №1, №2 и №3. Рекомендуется их оптимизация
• Для запросов №1 и №2 - сделать хинт для
использования индекса INDEX_IX
• Запрос №3 –
создать индекс (id, parent_id, address)
25
ЗАКАЗЧИК: Легкая промышленность
УСЛОВИЯ: E-com площадка, высоконагруженная СУБД Oracle
ПРОБЛЕМА: Периодическое снижение производительности в «горячие» периоды
ЧТО СДЕЛАНО: Аудит и оптимизация производительности СУБД,
разработана стратегия по дальнейшему развитию и поддержке
РЕЗУЛЬТАТ:
• Устранение узких мест в работе СУБД
• Повышение доступности системы
Кейс №3: Не все аудиты одинаково полезны
26
ЗАКАЗЧИК: Энергетика
УСЛОВИЯ:
• Система документооборота
• Более 50000 сотрудников
• Более 70 предприятий
ПРОБЛЕМА: Поиск причин зависаний занимал часы и даже дни, а порой и
вовсе был затруднен из-за сложности архитектуры и ограничений
имеющихся инструментов
Кейс №4: Снижение времени на решение инцидентов
Java performance tuning survey results (part I)
СКОЛЬКО ВРЕМЕНИ КОМАНДЫ ТРАТЯТ НА РЕШЕНИЕ
ИНЦИДЕНТОВ?
Меньше часа
Меньше дня
Меньше недели
Меньше месяца
Больше месяца
На что уходит время?
13% 12%
Решение
проблемы
Другое Поиск
причины
Сбор
диагностической
информации
Воспроизведение
20% 25% 30%
КУДА УХОДИТ ВРЕМЯ ПРИ РЕШЕНИИ ИНЦИДЕНТОВ?
Приложения все сложнее и сложнее
ПРИЛОЖЕНИЯ СТАНОВЯТСЯ СЛОЖНЕЕ И РАСПРЕДЕЛЕННЕЕ
– ПОИСК ПРИЧИН ЗАНИМАЕТ МНОГО ВРЕМЕНИ
Нужно собрать много диагностической
информации "[ACTIVE] ExecuteThread: '22' for queue: 'weblogic.kernel.Default (self-tuning)'"
java.lang.Thread.State: RUNNABLE
at java.util.Calendar.getTime
at java.text.SimpleDateFormat.parse
at java.text.DateFormat.parse
...
at com.documentum.objectprotocol.AbstractObjectProtocol.deserializeTimeValue
at com.documentum.objectprotocol.AbstractObjectProtocol.deserializeSingleValue
at com.documentum.objectprotocol.AbstractObjectProtocol.deserializeValue
...
at com.documentum.objectmanager.PersistentDataManager.fetchFromServer
at com.documentum.objectmanager.PersistentDataManager.getData
at com.documentum.objectmanager.PersistentObjectManager.getObjectFromServer
at com.documentum.objectmanager.PersistentObjectManager.getObject
at com.documentum.session.Session.getObject
...
at com.documentum.web.formext.config.ConfigService.lookupElement
...
at com.croc.documentum.servlet.DatagridToJSONServlet.processRequest
at com.croc.documentum.servlet.DatagridToJSONServlet.doPost
at weblogic.work.ExecuteThread.execute
at weblogic.work.ExecuteThread.run
НУЖНО СОБРАТЬ И ПРОАНАЛИЗИРОТЬ ГИГАБАЙТЫ
ДИАГНОСТИЧЕСКОЙ ИНФОРМАЦИИ
Системы класса APM предоставляют все
необходимые данные для обеспечения
надежной работы всех приложений,
находящихся в локальной, облачной
или гибридной среде компании.
ЦОД
Конечные пользователи
«Облако»
ЧТО ТАКОЕ АРМ (APPLICATION PERFORMANCE MONITORING)?
Сервер анализа данных
a
a
a
/application/sed (286)
/application/sed (695)
/application/
/application/
/application/
/application/
/application/
/application/
/application/
application
application
application
application
server-N (1405)
application server-server-server:port
40
ЗАКАЗЧИК: Энергетика
УСЛОВИЯ:
• Система документооборота
• Более 50000 сотрудников
• Более 70 предприятий
ПРОБЛЕМА: Поиск причин зависаний занимал часы и даже дни, а порой и
вовсе был затруднен из-за сложности архитектуры и ограничений
имеющихся инструментов
ЧТО СДЕЛАНО: внедрение инструмента мониторинга производительности
РЕЗУЛЬТАТ:
• Сокращение времени решения проблем с быстродействием до нескольких минут
• 30% проблем, которые не могли быть решены ранее, нашли свое решение
• Высокая вовлеченность сотрудников отдела в использование инструмента
Кейс №4: Снижение времени на решение инцидентов
НИКОМУ НЕЛЬЗЯ ВЕРИТЬ
ИСПОЛЬЗУЙТЕ СОВРЕМЕННЫЕ МЕТОДИКИ И ИНСТРУМЕНТЫ
ЗАДУМЫВАТЬСЯ О ВОПРОСАХ ПРОИЗВОДИТЕЛЬНОСТИ ЗАРАНЕЕ
41
ВЫВОДЫ