Оптимизация производительности ИТ - систем

advertisement
Оптимизация
производительности
информационных систем
Баркетов Павел
Технический директор
Компания «Софтпоинт»
Давайте познакомимся
• barketov@softpoint.ru
• Изучаю проблемы производительности и способы их
решения с 2005 года.
• Другие направления:
- Онлайн обмен данными между БД,
в том числе 1С 8.
- Балансировка нагрузки и кластерные архитектуры
информационных систем.
ВЫ?
• Разработчики и администраторы 1С
• Архитекторы приложений?
• Руководители проектов?
• Люди, интересующиеся проблемами
производительности?
Проблемы производительности
• Легко моделируемые проблемы
(Описана технология решения, решение делается обычно
собственными силами)
• Непостоянные и непредсказуемые проблемы.
(Хаотично появляются, сложно выявить закономерности, не
понятно как решать)
• Предсказуемые проблемы,
но сложно решаемые.
(Распределенные дисковые хранилища,
распараллеливание процессов, кластера)
Откуда «они» возникают?


Плохое качество контроля за основными параметрами.
Быстрый рост бизнеса, инфраструктура не успевает.
При внедрении нового функционала не проверяется
степень влияния на информационную систему.

С чем придется столкнуться при решении?
Первая особенность
• «Узкие места информационной системы скрывают
другие узкие места»
С чем придется столкнуться при решении?
Вторая особенность
Проблемы производительности неравномерно
распределены по времени
С чем придется столкнуться при решении?
Третья особенность
• Наибольшая часть проблем сосредоточена в
ограниченном количестве мест
С чем придется столкнуться при решении?
Четвертая особенность
• Субъективное мнение пользователей
• Объективная оценка
- Анкетирование, интервьюирование
- Шкала удовлетворенности
- Реальный отклик системы
- Реальная длительность операций
- Количество ошибок
Как вести проекты по оптимизации?
Требование 1
• Непрерывный качественный мониторинг за всеми
параметрами системы без дополнительной нагрузки.
- Параметры всех узлов
информационной системы.
- Инструмент для анализа.
Как вести проекты по оптимизации?
Требование 2
• Проект идет итерационно (строго поэтапно), на
каждом этапе оптимизируется один пласт проблем.
Важно: Нельзя оптимизировать все узкие места
сразу!!!
(Они перераспределяться после очередной итерации)
Как вести проекты по оптимизации?
Требование 3
• Поиск первопричины падения производительности.
Осознание того, что трудозатраты на поиск значительно
больше, чем на исправление.
Как вести проекты по оптимизации?
Требование 4
• Все рекомендации по настройкам, по изменению
архитектуры должны быть аргументированы.
Нельзя полностью полагаться на базу знаний, «высший
пилотаж» - используя знания, проверить и выработать
обоснования на данных своей информационной системы.
Как вести проекты по оптимизации?
Необходимость 5
• Нельзя допустить оптимизации ради оптимизации
(четко знать предполагаемый эффект).
• При анализе строить графические представления
данных (гораздо проще выявить закономерности,
зависимости).
Предпосылки к оптимизации
Блокировочного механизма
• Ошибки на событиях блокировок (timeout, deadlock).
• Увеличение (по сравнению с однопользовательским
режимом) длительностей транзакций (проведение
документов)
• Недозагруженность ресурсов (CPU, Disk).
Предпосылки к оптимизации
Конфигурации 1С
• Большая длительность выполнения операций в 1С.
Предпосылки к оптимизации
Посредством параллельных вычислений
• Длительная операция 1С.
• Недозагруженность аппаратных ресурсов.
• В операции есть набор «независимых» друг от друга
действий.
Мониторинг производительности PerfExpert
Непрерывный контроль ситуации в информационной системе
Мониторинг производительности PerfExpert
•
Информация о нагрузке MS SQL запросами 1С (строки кода 1С).
•
Информация об ошибках у пользователей и местах возникновения в коде.
Мониторинг производительности PerfExpert
•
Замеры длительностей основных операций в 1С и получение времени отклика.
Мониторинг производительности PerfExpert
•
Настройки системы для администратора.
•
Сведения для регламентного обслуживания.
•
Многочисленные отчеты.
Мониторинг производительности PerfExpert
Анализ и воспроизведение запросов 1С
Мониторинг производительности PerfExpert
Анализ серверных вызовов
Практический пример
Цель: показать один из способов анализа типовой проблемы
производительности и эффективные способы решения.
Предпосылки: жалобы на «торможение» операций у
пользователей.
Первичный анализ: показал, что очень сильно загружен
физический диск, где находится рабочая БД 1С.
Первый шаг
Вариант быстрого решения: купить новый диск с
улучшенными характеристиками.
«Эффективность» для диска: уменьшение очереди диска
в несколько раз.
Эффективность решения проблемы: практически
нулевая (пользователи не заметили разницы).
Для максимальной эффективности: необходимо
проанализировать почему диск загружен??? Например, он
загружен, потому что данные не задерживаются в cache MS
SQL.
Первый шаг
Второй шаг
Вариант быстрого решения: увеличить объем оперативной
памяти.
Эффективность решения проблемы: низкая, так как это
решение лишь скроет проблемы. В дальнейшем проблема
может стать еще острее.
Для максимальной эффективности: следует посмотреть,
какие запросы (виды запросов) приводят к частому
«выдавливанию» страниц данных из cache MS SQL.
Второй шаг
Третий шаг
Вариант решения: оптимизация найденных запросов 1С SQL (перестройка запросов, индексация, виртуальные таблицы
и прочее).
Эффективность решения: максимальная, так как
оптимизация запросов 1С приведет к уменьшению нагрузки на
сервер СУБД MS SQL, cache MS SQL будет эффективно
работать и нагрузка на физический диск, обусловленная
избыточным чтением данных с него, уменьшится в десятки раз.
Перспективные решения
Вопросы
Спасибо за внимание!!!
Download