56
ПОВЫШЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ БИЗНЕС-ПРИЛОЖЕНИЙ Андрей Мостовых ЭКСПЕРТ НАПРАВЛЕНИЯ СИСТЕМНЫХ РЕШЕНИЙ ДЕПАРТАМЕНТА ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ КОМПАНИИ КРОК

Повышение производительности бизнес-приложений

  • View
    139

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Повышение производительности бизнес-приложений

ПОВЫШЕНИЕ

ПРОИЗВОДИТЕЛЬНОСТИ

БИЗНЕС-ПРИЛОЖЕНИЙ

Андрей Мостовых

ЭКСПЕРТ НАПРАВЛЕНИЯ

СИСТЕМНЫХ РЕШЕНИЙ

ДЕПАРТАМЕНТА

ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

КОМПАНИИ КРОК

Page 2: Повышение производительности бизнес-приложений

КОРРЕКТНАЯ ДИАГНОСТИКА

• Период диагностики:

время работы сценария

• Приоритет:

насколько важна проблемная операция для

бизнеса?

• Профиль нагрузки:

Метод R — удобно получать с помощью

интроспекторов, e.g Precise i3, но можно и вручную

Page 3: Повышение производительности бизнес-приложений

ПЕРИОД ДИАГНОСТИКИ

Page 4: Повышение производительности бизнес-приложений

ПРИОРИТЕТ

Page 5: Повышение производительности бизнес-приложений

ПРИОРИТЕТ

Page 6: Повышение производительности бизнес-приложений

ПРОФИЛЬ НАГРУЗКИ: МЕТОД R

Пример

№ Операция % времени

отклика

1 Проверка сессии 0,06

2 Формирование запроса к СУБД на сервере

приложений

0,5

3 Извлечение и обработка данных в СУБД 66,29

4 Обработка данных из СУБД 24,11

5 Отправка результата пользователю 9,04

Page 7: Повышение производительности бизнес-приложений

АРХИТЕКТУРА СОВРЕМЕННОЙ ИС

Page 8: Повышение производительности бизнес-приложений

КОМПОНЕНТЫ С НИЗКОЙ

КОНКУРЕНЦИЕЙ• Горизонтальное масштабирование: множество

серверов среднего уровня и балансировщик

• Виртуализация на уровне ОС: IBM PowerVM, Solaris

Zones, VmWare, etc

• Облачные вычисления, где сервис — ОС.

Page 9: Повышение производительности бизнес-приложений

КОМПОНЕНТЫ С ВЫСОКОЙ

КОНКУРЕНЦИЕЙ• Как правило, серверы приложений и СУБД

• Вертикальное масштабирование

• Виртуализация на уровне сервиса

(сервера или облака серверов)

Page 10: Повышение производительности бизнес-приложений

СЕРВЕРЫ ПРИЛОЖЕНИЙ JAVA

Page 11: Повышение производительности бизнес-приложений

JAVA

• Индустриальный стандарт де-факто

• Ряд «родовых» болезней, обусловленных

конструкцией машин.

Page 12: Повышение производительности бизнес-приложений

ОСНОВНЫЕ ПРОБЛЕМЫ БОЛЬШИХ

JAVA-ПРИЛОЖЕНИЙ• Трудности с поддержкой больших объемов памяти

(heap)

• Внезапная неопределенная сборка мусора

• Перераспределение памяти требует перезагрузки

• Конкуренция, блокировки

• Ограниченные возможности трафика между VM.

Page 13: Повышение производительности бизнес-приложений

AZUL VEGA3

ОС-независимое устройство для исполнения JAVA-кода

Page 14: Повышение производительности бизнес-приложений

ВЫЧИСЛИТЕЛЬНЫЕ

УСТРОЙСТВА• От 2 до 16 54-ядерных процессоров Vega 3, от

48 до 768Гб памяти.

• Плотное размещение – до 216 ядер в 5U и до

864 — в 14U.

• Низкое энергопотребление — от 0,5 до 3,1КВт.

• Управление через веб-интерфейс, работающий

на самом устройстве.

• Встроенный мониторинг производительности в

режиме реального времени

• Azul Java Machine – сертифицирована,

полностью совместима с SUN JVM, ОС-

независима, не требует изменения кода

Page 15: Повышение производительности бизнес-приложений

ИННОВАЦИОННЫЙ ПОДХОДAzul преобразует корпоративные вычисления применением

специального оборудования, предоставляющего

виртуализированную, разделяемую, масштабируемую,

независимую от ОС вычислительную инфраструктуру.

• Избыточное, с низкой утилизацией

• Ограниченная масштабируемость

• Нестабильное время отклика

• Сложно управляемое

• С нормальной утилизацией

• Масштабируемое (сотни ядер

и Гб памяти на java-машину)

• Просто управляемое

Page 16: Повышение производительности бизнес-приложений

МАСШТАБИРУЕМАЯ JVM

• До 680 Гб памяти на одну JVM

• Симметричное использование до 768 ядер

• Универсальная 64-битная адресация: сотни гигабайт

памяти на один процесс даже на 32-битных системах

Page 17: Повышение производительности бизнес-приложений

СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ

ПАМЯТИДает возможность JVM получить больше памяти.

• «одалживает» память из общего пула для

предотвращения ошибок out of memory с

уведомлением администраторов;

• выделением дополнительной памяти предотвращает

запуск сборки мусора до снижения нагрузки

Page 18: Повышение производительности бизнес-приложений

ОПТИМИСТИЧЕСКАЯ КОНКУРЕНЦИЯ

Повышает масштабируемость многопоточных

приложений без изменения кода.

• Делает блокирование оптимистическим,

• Снижает влияние потоковых блокировок,

• Снимает необходимость оптимизации кода

блокирования разработчиками,

• Снижает эффект закона Амдала.

Page 19: Повышение производительности бизнес-приложений

НЕПРЕРЫВНАЯ СБОРКА МУСОРА

Снижает влияние Garbage Collector на время отклика

приложений даже для очень больших heap

Процесс сборки мусора

• конкурентный – не прерывает работу приложения;

• параллельный – использует несколько ядер;

• детерминистский – гарантировано завершается за

два прохода.

Page 20: Повышение производительности бизнес-приложений

СБОРКА МУСОРА БЕЗ ПАУЗ

Врем

я о

ткл

ика

(секу

нд

ы)

HP/AMDAzul

10 100 200 300 400 500 600 700 800

Полный цикл(4 минуты)

частный цикл(от 2-3 до 70 секунд)

30

60

Page 21: Повышение производительности бизнес-приложений

DIRECT PATH VM

• Предотвращение узких мест при обмене между VM

• 150 Гб/с с задержкой <40 мкс.

• Масштабируемый кеш

Page 22: Повышение производительности бизнес-приложений

УПРАВЛЯЕМОСТЬ

• Мониторинг в режиме реального времени

• детальный обзор работы VM

• моментальные снимки узких мест

• мониторинг не влияет на производительность

• Менеджер вычислительного пула

• единая точка управления для нескольких устройств

• несколько устройств, как один пул

Page 23: Повышение производительности бизнес-приложений

ПРОСТОЕ ВНЕДРЕНИЕ

Page 24: Повышение производительности бизнес-приложений

ПРОСТОЕ ВНЕДРЕНИЕ

Page 25: Повышение производительности бизнес-приложений

ПРОСТОЕ ВНЕДРЕНИЕ

Page 26: Повышение производительности бизнес-приложений

КЛИЕНТЫ

Page 27: Повышение производительности бизнес-приложений

БАЗЫ ДАННЫХ

Page 28: Повышение производительности бизнес-приложений

ПРОБЛЕМЫ

• Значительный эффект при вертикальном

масштабировании на уровне ОС

для высоких нагрузок

• Недостаточный уровень виртуализации

(экземпляр СУБД, максимум — сессия)

• Сложность горизонтального масштабирования:

БД по определению – точка фокуса

Page 29: Повышение производительности бизнес-приложений

ORACLE REAL-APPLICATION

CLUSTERS ONE NODE

Page 30: Повышение производительности бизнес-приложений

КЛАСТЕР ИЗ ОДНОЙ НОДЫ

Page 31: Повышение производительности бизнес-приложений

РАЗДЕЛЕНИЕ РЕСУРСОВ

• Ограничение по количеству ядер

на экземпляр

• Может задаваться на лету,

во время работы экземпляров

• Работает с Resource Manager

Page 32: Повышение производительности бизнес-приложений

ПЕРЕДАЧА ЭКЗЕМПЛЯРА

Page 33: Повышение производительности бизнес-приложений

ПЕРЕДАЧА ЭКЗЕМПЛЯРА

Page 34: Повышение производительности бизнес-приложений

ПЕРЕДАЧА ЭКЗЕМПЛЯРА

Page 35: Повышение производительности бизнес-приложений

ПЕРЕДАЧА ЭКЗЕМПЛЯРА

Page 36: Повышение производительности бизнес-приложений

ПЕРЕДАЧА ЭКЗЕМПЛЯРА

Page 37: Повышение производительности бизнес-приложений

ЖИВОЙ НАКАТ ОБНОВЛЕНИЙ

• Передача экземпляра на резервную ноду

• Накат патчей на основной в то время, как

пользователи работают на резервной

• Перевод пользователей назад на основную ноду

Page 38: Повышение производительности бизнес-приложений

ОТКАЗОУСТОЙЧИВОСТЬ

Page 39: Повышение производительности бизнес-приложений

ОТКАЗОУСТОЙЧИВОСТЬ

Page 40: Повышение производительности бизнес-приложений

ОТКАЗОУСТОЙЧИВОСТЬ

Page 41: Повышение производительности бизнес-приложений

ORACLE REAL-APPLICATION

CLUSTERS

Page 42: Повышение производительности бизнес-приложений

ГОРИЗОНТАЛЬНОЕ

МАСШТАБИРОВАНИЕ

Page 43: Повышение производительности бизнес-приложений

ОБЛАКО СУБД

Page 44: Повышение производительности бизнес-приложений

REAL APPLICATION CLUSTERS

• Мало мощных нод лучше, чем много средних

• Балансировка нагрузки модулей между нодами

Page 45: Повышение производительности бизнес-приложений

ПОКАЗАНИЯ К ИСПОЛЬЗОВАНИЮ

• RAC One Node

• Для эффективного динамического разделения ресурсов

большого сервера

• Для минимизации времени простоя БД

• RAC

• Для горизонтального масштабирования на уровне БД

приложений с высококонкурентной нагрузкой

RAC One Node мигрируется в RAC

без остановки работы БД

Page 46: Повышение производительности бизнес-приложений

MORE VRP

Page 47: Повышение производительности бизнес-приложений

ВОЗМОЖНОСТИ

• Ограничение ресурсов на уровне отдельных

транзакций

• Мониторинг потребления ресурсов — исторический и

в режиме реального времени

• Набор готовых правил для распространенных

ERP, CRM, BI, инструментов DWH

• Полная прозрачность для приложений

• Быстрое построение заказных правил

Page 48: Повышение производительности бизнес-приложений

ВИРТУАЛИЗАЦИЯ МЕЖДУ ОС И БД

Page 49: Повышение производительности бизнес-приложений

ПОДДЕРЖИВАЕМЫЕ СУБД

• Oracle RDBMS версии >7 (и standard, и enterprise)

• IBM DB2 8.1-9.5

• MS SQL 2005

Page 50: Повышение производительности бизнес-приложений

ОПЕРАЦИОННЫЕ СИСТЕМЫ

• Red Hat Linux, SUSE, Oracle Enterprise Linux

• IBM AIX

• Sun Solaris

• HP-UX

• Windows Server (2000 и выше)

• TRU-64

Page 51: Повышение производительности бизнес-приложений

ПРАВИЛА

• Могут задаваться на основании

• Пользователя СУБД

• Пользователя ОС

• Имени хоста

• SQL-выражения

• Текущего потребления ресурсов

• ...

• Могут задаваться кликами мыши

(вообще без написания кода)

Page 52: Повышение производительности бизнес-приложений

ПРАВИЛА

Page 53: Повышение производительности бизнес-приложений

НАКЛАДНЫЕ РАСХОДЫ

• 0,5% одного ядра => 0,12% четырехядерного

процессора.

Page 54: Повышение производительности бизнес-приложений

ОТКАЗОУСТОЙЧИВОСТЬ

• Управляющие

серверы

кластеризуются

• Реализована

поддержка многих

экземпляров и Oracle

RAC

Page 55: Повышение производительности бизнес-приложений

ОТЧЕТЫ И УВЕДОМЛЕНИЯ

• Отчетный инструментарий поставляется в комлекте

• Данные можно выгружать в виде CSV и XML

и обрабатывать с помощью BI-инструментов

• Реализована отправка отчетов по e-mail

• Существует API для интеграции со сторонними

системами мониторинга

Page 56: Повышение производительности бизнес-приложений

ВОПРОСЫ?

Андрей Мостовых

ЭКСПЕРТ НАПРАВЛЕНИЯ

СИСТЕМНЫХ РЕШЕНИЙ

ДЕПАРТАМЕНТА

ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

КОМПАНИИ КРОК

E-mail: [email protected]

Тел.: +7(495)974 2277, Доб. 6520

Факс: +7(495)974 2277