Повышение производительности бизнес-приложений
Post on 11-Apr-2017
139 views
TRANSCRIPT
ПОВЫШЕНИЕ
ПРОИЗВОДИТЕЛЬНОСТИ
БИЗНЕС-ПРИЛОЖЕНИЙ
Андрей Мостовых
ЭКСПЕРТ НАПРАВЛЕНИЯ
СИСТЕМНЫХ РЕШЕНИЙ
ДЕПАРТАМЕНТА
ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
КОМПАНИИ КРОК
КОРРЕКТНАЯ ДИАГНОСТИКА
• Период диагностики:
время работы сценария
• Приоритет:
насколько важна проблемная операция для
бизнеса?
• Профиль нагрузки:
Метод R — удобно получать с помощью
интроспекторов, e.g Precise i3, но можно и вручную
ПЕРИОД ДИАГНОСТИКИ
ПРИОРИТЕТ
ПРИОРИТЕТ
ПРОФИЛЬ НАГРУЗКИ: МЕТОД R
Пример
№ Операция % времени
отклика
1 Проверка сессии 0,06
2 Формирование запроса к СУБД на сервере
приложений
0,5
3 Извлечение и обработка данных в СУБД 66,29
4 Обработка данных из СУБД 24,11
5 Отправка результата пользователю 9,04
АРХИТЕКТУРА СОВРЕМЕННОЙ ИС
КОМПОНЕНТЫ С НИЗКОЙ
КОНКУРЕНЦИЕЙ• Горизонтальное масштабирование: множество
серверов среднего уровня и балансировщик
• Виртуализация на уровне ОС: IBM PowerVM, Solaris
Zones, VmWare, etc
• Облачные вычисления, где сервис — ОС.
КОМПОНЕНТЫ С ВЫСОКОЙ
КОНКУРЕНЦИЕЙ• Как правило, серверы приложений и СУБД
• Вертикальное масштабирование
• Виртуализация на уровне сервиса
(сервера или облака серверов)
СЕРВЕРЫ ПРИЛОЖЕНИЙ JAVA
JAVA
• Индустриальный стандарт де-факто
• Ряд «родовых» болезней, обусловленных
конструкцией машин.
ОСНОВНЫЕ ПРОБЛЕМЫ БОЛЬШИХ
JAVA-ПРИЛОЖЕНИЙ• Трудности с поддержкой больших объемов памяти
(heap)
• Внезапная неопределенная сборка мусора
• Перераспределение памяти требует перезагрузки
• Конкуренция, блокировки
• Ограниченные возможности трафика между VM.
AZUL VEGA3
ОС-независимое устройство для исполнения JAVA-кода
ВЫЧИСЛИТЕЛЬНЫЕ
УСТРОЙСТВА• От 2 до 16 54-ядерных процессоров Vega 3, от
48 до 768Гб памяти.
• Плотное размещение – до 216 ядер в 5U и до
864 — в 14U.
• Низкое энергопотребление — от 0,5 до 3,1КВт.
• Управление через веб-интерфейс, работающий
на самом устройстве.
• Встроенный мониторинг производительности в
режиме реального времени
• Azul Java Machine – сертифицирована,
полностью совместима с SUN JVM, ОС-
независима, не требует изменения кода
ИННОВАЦИОННЫЙ ПОДХОДAzul преобразует корпоративные вычисления применением
специального оборудования, предоставляющего
виртуализированную, разделяемую, масштабируемую,
независимую от ОС вычислительную инфраструктуру.
• Избыточное, с низкой утилизацией
• Ограниченная масштабируемость
• Нестабильное время отклика
• Сложно управляемое
• С нормальной утилизацией
• Масштабируемое (сотни ядер
и Гб памяти на java-машину)
• Просто управляемое
МАСШТАБИРУЕМАЯ JVM
• До 680 Гб памяти на одну JVM
• Симметричное использование до 768 ядер
• Универсальная 64-битная адресация: сотни гигабайт
памяти на один процесс даже на 32-битных системах
СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ
ПАМЯТИДает возможность JVM получить больше памяти.
• «одалживает» память из общего пула для
предотвращения ошибок out of memory с
уведомлением администраторов;
• выделением дополнительной памяти предотвращает
запуск сборки мусора до снижения нагрузки
ОПТИМИСТИЧЕСКАЯ КОНКУРЕНЦИЯ
Повышает масштабируемость многопоточных
приложений без изменения кода.
• Делает блокирование оптимистическим,
• Снижает влияние потоковых блокировок,
• Снимает необходимость оптимизации кода
блокирования разработчиками,
• Снижает эффект закона Амдала.
НЕПРЕРЫВНАЯ СБОРКА МУСОРА
Снижает влияние Garbage Collector на время отклика
приложений даже для очень больших heap
Процесс сборки мусора
• конкурентный – не прерывает работу приложения;
• параллельный – использует несколько ядер;
• детерминистский – гарантировано завершается за
два прохода.
СБОРКА МУСОРА БЕЗ ПАУЗ
Врем
я о
ткл
ика
(секу
нд
ы)
HP/AMDAzul
10 100 200 300 400 500 600 700 800
Полный цикл(4 минуты)
частный цикл(от 2-3 до 70 секунд)
30
60
DIRECT PATH VM
• Предотвращение узких мест при обмене между VM
• 150 Гб/с с задержкой <40 мкс.
• Масштабируемый кеш
УПРАВЛЯЕМОСТЬ
• Мониторинг в режиме реального времени
• детальный обзор работы VM
• моментальные снимки узких мест
• мониторинг не влияет на производительность
• Менеджер вычислительного пула
• единая точка управления для нескольких устройств
• несколько устройств, как один пул
ПРОСТОЕ ВНЕДРЕНИЕ
ПРОСТОЕ ВНЕДРЕНИЕ
ПРОСТОЕ ВНЕДРЕНИЕ
КЛИЕНТЫ
БАЗЫ ДАННЫХ
ПРОБЛЕМЫ
• Значительный эффект при вертикальном
масштабировании на уровне ОС
для высоких нагрузок
• Недостаточный уровень виртуализации
(экземпляр СУБД, максимум — сессия)
• Сложность горизонтального масштабирования:
БД по определению – точка фокуса
ORACLE REAL-APPLICATION
CLUSTERS ONE NODE
КЛАСТЕР ИЗ ОДНОЙ НОДЫ
РАЗДЕЛЕНИЕ РЕСУРСОВ
• Ограничение по количеству ядер
на экземпляр
• Может задаваться на лету,
во время работы экземпляров
• Работает с Resource Manager
ПЕРЕДАЧА ЭКЗЕМПЛЯРА
ПЕРЕДАЧА ЭКЗЕМПЛЯРА
ПЕРЕДАЧА ЭКЗЕМПЛЯРА
ПЕРЕДАЧА ЭКЗЕМПЛЯРА
ПЕРЕДАЧА ЭКЗЕМПЛЯРА
ЖИВОЙ НАКАТ ОБНОВЛЕНИЙ
• Передача экземпляра на резервную ноду
• Накат патчей на основной в то время, как
пользователи работают на резервной
• Перевод пользователей назад на основную ноду
ОТКАЗОУСТОЙЧИВОСТЬ
ОТКАЗОУСТОЙЧИВОСТЬ
ОТКАЗОУСТОЙЧИВОСТЬ
ORACLE REAL-APPLICATION
CLUSTERS
ГОРИЗОНТАЛЬНОЕ
МАСШТАБИРОВАНИЕ
ОБЛАКО СУБД
REAL APPLICATION CLUSTERS
• Мало мощных нод лучше, чем много средних
• Балансировка нагрузки модулей между нодами
ПОКАЗАНИЯ К ИСПОЛЬЗОВАНИЮ
• RAC One Node
• Для эффективного динамического разделения ресурсов
большого сервера
• Для минимизации времени простоя БД
• RAC
• Для горизонтального масштабирования на уровне БД
приложений с высококонкурентной нагрузкой
RAC One Node мигрируется в RAC
без остановки работы БД
MORE VRP
ВОЗМОЖНОСТИ
• Ограничение ресурсов на уровне отдельных
транзакций
• Мониторинг потребления ресурсов — исторический и
в режиме реального времени
• Набор готовых правил для распространенных
ERP, CRM, BI, инструментов DWH
• Полная прозрачность для приложений
• Быстрое построение заказных правил
ВИРТУАЛИЗАЦИЯ МЕЖДУ ОС И БД
ПОДДЕРЖИВАЕМЫЕ СУБД
• Oracle RDBMS версии >7 (и standard, и enterprise)
• IBM DB2 8.1-9.5
• MS SQL 2005
ОПЕРАЦИОННЫЕ СИСТЕМЫ
• Red Hat Linux, SUSE, Oracle Enterprise Linux
• IBM AIX
• Sun Solaris
• HP-UX
• Windows Server (2000 и выше)
• TRU-64
ПРАВИЛА
• Могут задаваться на основании
• Пользователя СУБД
• Пользователя ОС
• Имени хоста
• SQL-выражения
• Текущего потребления ресурсов
• ...
• Могут задаваться кликами мыши
(вообще без написания кода)
ПРАВИЛА
НАКЛАДНЫЕ РАСХОДЫ
• 0,5% одного ядра => 0,12% четырехядерного
процессора.
ОТКАЗОУСТОЙЧИВОСТЬ
• Управляющие
серверы
кластеризуются
• Реализована
поддержка многих
экземпляров и Oracle
RAC
ОТЧЕТЫ И УВЕДОМЛЕНИЯ
• Отчетный инструментарий поставляется в комлекте
• Данные можно выгружать в виде CSV и XML
и обрабатывать с помощью BI-инструментов
• Реализована отправка отчетов по e-mail
• Существует API для интеграции со сторонними
системами мониторинга
ВОПРОСЫ?
Андрей Мостовых
ЭКСПЕРТ НАПРАВЛЕНИЯ
СИСТЕМНЫХ РЕШЕНИЙ
ДЕПАРТАМЕНТА
ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
КОМПАНИИ КРОК
E-mail: [email protected]
Тел.: +7(495)974 2277, Доб. 6520
Факс: +7(495)974 2277