владивосток форум производительность_ha
TRANSCRIPT
Производительность и отказоустойчивость в больших проектах Сергей Кудинов, InterSystems Владивосток, 2015
• Как предотвратить ошибки в ПО
– [Unit]Test
– Continuous integration
– Agile
– Alpha/Beta/RC
– …
• Как предотвратить проблемы с
производительностью
– Перестать считать это
проблемой?..
• Первый шаг для контроля производительности приложения
• Отражает объем работы и скорость работы приложения – Время открытия окна приложения – Время составления отчетов – № транзакций в минуту/ секунду
Метрики приложения
Системные метрики
CPU
Ввод/Вывод
- Дисковая система - Сеть
Память
Загрузка CPU Задержки / очереди
Доступно памяти
Метрики Caché
CPU DB I/O
CACHE.DAT, WIJ, Journals
Память
Не DB I/O
(файлы, сеть)
Routine Commands
Метрики приложения
Global References
Ключевые метрики Cachè
• GloRef
– Одиночное обращение к глобалу (get, set, kill)
– Зависит от I/O (файлы DB и память)
• Routine Commands
– Выполнение одиночной команды COS
– Зависит от загрузки CPU
• Время выполнения
– Осязаемая оценка производительности
GloRef
Routine Commands
Время выполнения
Epic Systems • Выручка в 2014 году $1.8 млрд.
• 7000 сотрудников
• В США ЭМК 173 млн. пациентов (54%)
• В мире ЭМК 182 млн. пациентов
• Крупнейший клиент Kaiser Permanente (50 000)
• 2014 год – 31 новый клиент (8 не США)
• Ежегодный семинар Epic 10 300 участников из 326 организаций
• Из аттестованных по Stage 7 используют Epic (http://www.epic.com/recognition-stage7.php):
– 69% госпиталей
– 91% амбулаторий
• Собственный TCP/IP протокол
• Прикладной разработчик модуля приложения ОБЯЗАН написать код для генератора (Caché Сервер)
• Прикладные программисты могут использовать только высокоуровневое API
Генератор Нагрузки
• Постоянный мониторинг всех клиентов – Метрики
• Сервер
• Caché
• Приложение
• Citrix
• Превентивное вмешательство – При отклонении метрик от нормы – расследовать и
устранять проблему до того как она стала очевидна пользователям!
Upgrade до 2015.1 !!!
• Наиболее значимые улучшения
– Более быстрая компиляция
– Более быстрая работа с локальными переменными
– Управление размером памяти процесса
– XML
– Async I/O
– Параллельный SQL
– Значительное улучшение производительности на многоядерных системах
Заветные 24x7 а также «пять девяток» и прочие изыски маркетологов
Когда вам говорят о доступности «пять девяток», уточните: после которой из них стоит точка.
Народная мудрость
Девятки и проценты Время «простоя системы» в год
99% 87 часов 40 минут
99.5% 43 часа 50 минут
99.9% 8 часов 46 минут
99.95% 4 часа 23 минут
99.995% 26 минут 18 секунд
99.999% 5 минут 16 секунд
99.9999% 31,6 секунды
Доступность совокупность технологий и подходов, направленных на устранение единой точки отказа, повышения безопасности и надежности элементов системы.
История:
• резервирование компонент (блоки питания, вентиляция, память, процессоры);
• RAID массивы из жестких дисков, позволяющие продолжать работу и не терять данные при выходе одного или нескольких дисков из строя;
• коррекция ошибок оперативной памяти и т.д.
• операционные системы – по статистике самый неотказоустойчивый компонент.
Отказоустойчивость
Microsoft Windows Server Clusters
HP ServiceGuard
IBM PowerHA SystemMirror
Veritas Cluster Server
Red Hat Enterprise Linux HA
Кластеризация
• Быстрое, автоматическое и безопасное переключение при возникновении сбоя системы
• Время переключения - секунды
• Полное резервирование компонентов; нет разделяемых элементов
• Уменьшает время простоя при обновлении версий и замене аппаратных компонентов
Для отказоустойчивости…
Почему зеркалирование?
• Поддержка нескольких географически разделенных ЦОД
• Простота переключения на резервный ЦОД без потери данных
• Простота обратного переключения на основной ЦОД
• Сравнение с дисковыми репликациями…
– Меньшая стоимость
– Нет ограничений на трубуемую задержку
– Минимизация трафика между резервными серверами
Для катастрофоустойчивости…
Почему зеркалирование?
Простая зеркальная пара
Failover Members A B
Mirror Virtual IP
Data Center Private LAN for Mirror Communication (optional)
Mirror Arbiter
Campus LAN / WAN Accessible to Users and Other Systems
Добавляем DR и Reporting Async
Failover Members
Reporting Async
DR Async
A B C D
Mirror Virtual IP
Campus LAN / WAN Accessible to Users and Other Systems
Data Center Private LAN for Mirror Communication (optional)
Mirror Arbiter
Зеркалирование только для DR и отчетности
Failover Member
Reportig Async
DR Async
A C D
Campus LAN / WAN Accessible to Users and Other Systems
Data Center Private LAN for Mirror Communication (optional)
Полностью дублируемое зеркало
Failover Members
DR Async
DR Async
Data Center 1
A K J B
Mirror Virtual IP
Internet
DMZ DMZ
Data Center 2
Reserved VIP
Mirror Arbiter
the Entire Organization LANs & WAN Accessible to
Спасибо! Сергей Кудинов [email protected]