Данный документ представляет методологии настройки производительности в YMatrix, охватывая оптимизацию системных ресурсов, настройку ресурсов базы данных и оптимизацию SQL-запросов.
Настройка производительности — это комплексная и критически важная задача.
Обычно существуют две причины для настройки производительности:
Предварительное условие:

Используйте данные мониторинга производительности и другую информацию о требованиях для описания текущего узкого места или потребностей в производительности.
Хорошее описание проблемы должно включать контекст и чётко формулировать наблюдаемую проблему. Оно должно быть лаконичным и, как правило, содержать, но не ограничиваться следующей информацией:
Лучший пример: Использование встроенного инструмента ввода данных в GUI YMatrix 5.0 для загрузки 2,8 миллиона строк; после 30 тестовых запусков задержка увеличилась с 30 секунд до 1 минуты — почти двукратное снижение производительности.
Худший пример: Генерация тестовых данных через GUI становится медленнее.
Цели оптимизации различаются в зависимости от бизнес-сценариев. Например, в сценарии временных рядов, таком как подключённые транспортные средства, целями могут быть повышение производительности агрегирующих запросов и операций соединения при детализированных запросах. В противоположность этому, для финансовой ядерной OLTP-системы целью может быть снижение задержки длинных хвостов транзакций.
Эффективная цель оптимизации должна быть измеримой, например:
Неприемлемо:
YMatrix рекомендует собирать, но не ограничиваться следующей информацией для анализа:
На основе собранной информации определите или выдвиньте гипотезу о корневой причине узкого места производительности. Для точного выявления проблемы может потребоваться несколько циклов сбора данных. Подробную методологию см. в разделе Настройка производительности.
Примечание!
Эффективная коммуникация и сотрудничество являются ключевыми для быстрого выявления корневых причин.
После выявления узкого места производительности предложите план оптимизации, который является низкозатратным, низкорисковым и обеспечивает максимальную выгоду.
Даже если решение предлагает наибольший потенциальный эффект для самого значимого узкого места, всегда оценивайте связанные с ним риски и стоимость реализации. Как правило, YMatrix рекомендует следующий порядок настройки, от наименьшей к наибольшей стоимости/риску:
ANALYZE для обновления статистики таблиц; или проанализируйте планы выполнения и перепишите SQL-запросы для снижения логической сложности и затрат на выполнение.Примечание!
Чтобы избежать необратимых узких мест при эксплуатации в продакшене, уделяйте большее внимание первоначальному проектированию. Научно планируйте, анализируйте и тестируйте модель данных для вашего сценария, чтобы обеспечить её корректность.
Процесс реализации настройки обычно включает, но не ограничивается следующими шагами:
Настройка производительности редко является однократной задачей. Для конкретной проблемы производительности может потребоваться несколько повторений шагов 2.3–2.7 до достижения удовлетворительных результатов.
Поэтому крайне важно чётко оценивать результаты настройки и предпринимать следующие действия: