От ApsaraDB

1. Введение

В этой статье представлена ​​AutoScale, инновационная функция Alibaba Cloud Служба автономии базы данных (DAS). Основываясь на данных о производительности экземпляров базы данных в режиме реального времени, DAS AutoScale обнаруживает аномальный трафик и дает рекомендации по подходящему типу экземпляра базы данных и емкости диска. Эта служба позволяет автоматически масштабировать хранилище и вычислительные ресурсы вашей базы данных. В этой статье мы сосредоточимся на:

  • Как мы можем оптимизировать нашу базу данных, чтобы максимизировать ее производительность?
  • Как мы можем быстро диагностировать и устранять различные непредвиденные проблемы с производительностью базы данных?
  • Как мы можем удовлетворить потребности бизнеса с минимальными затратами ресурсов?

2) Фон

Выбор подходящего типа экземпляра базы данных для вашего бизнес-приложения является сложной задачей. Выбор экземпляра с неоправданно высокими техническими характеристиками тратит ваши ресурсы впустую, а экземпляр с недостаточными вычислительными ресурсами влияет на ваш бизнес.

Как правило, большинство администраторов баз данных (DBA) выбирают экземпляр (например, 4-ядерный ЦП, 8 ГБ ОЗУ), который обеспечивает бесперебойную работу служб при правильном использовании ЦП (например, менее 50%) и достаточном дисковом пространстве (например, , 200 ГБ).

Однако в реальных условиях эксплуатации и обслуживания базы данных (O&M) ресурсы базы данных часто истощаются из-за всплесков трафика онлайн-приложений, что может произойти в следующих сценариях:

1) Выпуск новой службы: это происходит, когда новая служба выпущена, но трафик службы недооценен, что приводит к истощению ресурсов базы данных. Например, новое приложение получает огромное количество трафика или новая функция выпускается на платформе с огромным трафиком.
2) Неожиданный всплеск трафика: например, временный всплеск трафика вызвал по актуальным темам или распродажам, организованным интернет-знаменитостями.
3) Централизованный доступ. Доступ к некоторым службам осуществляется централизованно в определенные моменты времени. Например, ежедневные проверки входа и выхода или еженедельный финансовый аудит. Рабочая нагрузка в этих сценариях обычно невелика в непиковые часы. Поэтому большинство администраторов баз данных будет выделять ограниченные ресурсы для снижения затрат, несмотря на известные пики доступа.

Неожиданная нехватка вычислительных ресурсов в предыдущих сценариях серьезно повлияет на бизнес. Таким образом, исчерпание ресурсов базы данных является одной из проблем, с которыми приходится сталкиваться многим администраторам баз данных.

Ресурсы базы данных включают вычислительные ресурсы и ресурсы хранения, а исчерпание ресурсов базы данных охватывает следующие два аспекта.

1) Исчерпание вычислительных ресурсов, также известное как 100% загрузка ЦП: это происходит, когда для текущего экземпляра базы данных недостаточно вычислительных ресурсов, и он не может обрабатывать входящие запросы на доступ.
2) Исчерпание ресурсов хранилища, также известное как использование дискового пространства на 100 %: это происходит, когда дисковое пространство для экземпляра заполнено и новые данные не могут быть записаны в базу данных.

Чтобы решить эти две проблемы, DAS обеспечивает автоматическое масштабирование ресурсов хранения и вычислительных ресурсов за счет инновационных услуг.

В качестве инновационной функции DAS AutoScale обнаруживает аномальный трафик и дает рекомендации по подходящему типу экземпляра базы данных и емкости диска на основе данных о производительности экземпляров базы данных в реальном времени. Эта служба позволяет автоматически масштабировать хранилище и вычислительные ресурсы вашей базы данных.

Далее давайте подробно представим архитектуру DAS AutoScale, включая технические проблемы, решения и ключевые технологии.

3) Технические проблемы

При оптимизации баз данных мы часто увеличиваем или уменьшаем вычислительные узлы. Хотя эта операция задействует только ресурсы ЦП и памяти, она существенно влияет на производственную среду. Это влияет на такие операции, как миграция данных, переключение высокой доступности (HA), переключение прокси-сервера и, в конечном счете, на бизнес.

Если для экземпляра недостаточно вычислительных ресурсов, всплески бизнес-трафика могут привести к 100-процентной загрузке ЦП. Как правило, эту проблему можно решить путем масштабирования экземпляра базы данных. При подготовке плана масштабирования администратор базы данных должен ответить как минимум на три следующих вопроса:

1) Может ли операция масштабирования решить проблему нехватки ресурсов?
2) Когда следует выполнять операцию масштабирования?
3) Какой тип экземпляра следует выбрать?

Чтобы ответить на эти три вопроса, DAS сталкивается со следующими тремя проблемами:

Задача 1. Как определить, может ли операция масштабирования решить проблему?

В управлении базой данных 100 % использование ЦП указывает на недостаточность вычислительных ресурсов. Существуют различные основные причины и различные решения в зависимости от причины. Например, когда бизнес-трафик резко возрастает, а текущие ресурсы не могут удовлетворить вычислительные потребности, хорошим выбором будет автоматическое масштабирование. Однако нехватка ресурсов также может быть вызвана большим количеством медленных SQL-запросов, которые перегружают очереди задач и занимают большое количество вычислительных ресурсов. В этом случае опытные администраторы баз данных в первую очередь подумали бы о регулировании SQL, а не о масштабировании. При обнаружении нехватки ресурсов DAS также необходимо определить основную причину проблемы и принять соответствующие решения, например, регулирование или масштабирование.

Задача 2 — Как мы можем выбрать подходящее время и метод для масштабирования?

Время экстренного масштабирования тесно связано с точностью экстренного суждения. Если экстренные оповещения отправляются слишком часто, экземпляры могут быть чрезмерно масштабированы, что приведет к ненужным затратам. Если экстренное оповещение отправлено с опозданием, чрезвычайная ситуация может повлиять на ваш бизнес или даже привести к сбоям в бизнесе. При мониторинге в реальном времени трудно предсказать, существует ли внезапная исключительная ситуация от одного момента к другому. Поэтому трудно определить, требуется ли аварийное оповещение.

Обычно используются два подхода к масштабированию: горизонтальное масштабирование (масштабирование) путем добавления узлов, доступных только для чтения, и вертикальное масштабирование (масштабирование вверх) путем добавления ресурсов одного узла.

Горизонтальное масштабирование подходит для сценариев с большим трафиком чтения, но меньшим трафиком записи. Однако при масштабировании обычной базы данных необходимо перенести данные, чтобы создать узлы, доступные только для чтения, а данные, сгенерированные на основном узле во время миграции, требуют дополнительной синхронизации и обновлений на дополнительных узлах. Это занимает относительно много времени, что делает его менее эффективным в некоторых случаях.

Вертикальное масштабирование — это обновление существующего экземпляра. Общая практика заключается в том, чтобы сначала обновить базу данных-получатель, переключить службы с базы данных-источника на базу данных-получатель, а затем обновить базу данных-источник. Этот процесс снижает влияние на ваш бизнес, но также включает синхронизацию данных и может вызвать задержку данных. Поэтому мы должны решить, когда и как выбрать подходящий метод масштабирования, исходя из конкретного типа трафика на текущем экземпляре.

Задача 3 — Как выбрать подходящий тип инстанса?

При управлении базами данных при изменении типов экземпляров задействовано несколько операций O&M. Например, чтобы изменить тип экземпляра физической базы данных, необходимо выполнить множество операций, таких как миграция файла данных, изоляция и перераспределение cgroup, переключение узла прокси-сервера трафика и переключение основного/дополнительного узла. Масштабирование базы данных на основе Docker еще более сложно и требует дополнительных процессов микрослужб, таких как создание образа Docker, выбор экземпляра ECS и управление запасами. Выбор подходящего типа экземпляра может эффективно сократить количество изменений экземпляра и значительно сэкономить время для бизнеса.

Когда загрузка ЦП достигает 100%, вы можете столкнуться с двумя ситуациями после операции масштабирования. Во-первых, снижается загрузка ЦП, а бизнес-трафик становится стабильным. Во-вторых, загрузка ЦП по-прежнему составляет 100%, а трафик увеличивается с увеличением вычислительной мощности.

Первая ситуация — это идеальное состояние, которого мы хотим достичь за счет масштабирования. Тем не менее, второе также очень часто встречается. В этом случае новый инстанс по-прежнему не может удовлетворить текущую потребность в бизнес-трафике — ресурсов по-прежнему недостаточно, а сервисы по-прежнему страдают. Выбор подходящего типа экземпляра на основе операционной информации базы данных напрямую влияет на эффективность операции масштабирования.

4) Решения

В этом разделе функция DAS AutoScale описывается с трех точек зрения: возможности продукта, решения предыдущих проблем и основные технологии. В частности, DAS AutoScale обеспечивает автоматическое изменение размера хранилища и автоматическое масштабирование экземпляров для двух служб баз данных: RDS и PolarDB. Наконец, мы покажем вам, как использовать эту услугу, используя тематическое исследование.

4.1 Возможности продукта

Что касается возможностей продукта, DAS AutoScale в настоящее время предоставляет услуги автоматического изменения размера хранилища и автоматического масштабирования экземпляров для баз данных Alibaba Cloud RDS и PolarDB.

Если дисковое пространство приобретенного вами экземпляра базы данных приближается к своему верхнему пределу, служба автоматического изменения размера хранилища заранее изменяет размер дискового пространства, чтобы не повлиять на ваш бизнес. Этот сервис позволяет установить пороговое значение для изменения размера хранилища. В качестве альтернативы вы можете использовать предустановленный верхний предел в 90%, предоставляемый DAS. Когда запускается событие автоматического изменения размера, DAS изменяет размер дискового пространства для вашего экземпляра.

Служба автоматического масштабирования экземпляра позволяет настроить вычислительные ресурсы экземпляра базы данных в соответствии с требованиями службы. Это позволяет настроить максимальное количество и продолжительность пиков трафика. Вы также можете указать максимальную спецификацию для масштабирования, а также указать, нужно ли уменьшать масштаб в непиковые часы.

Что касается взаимодействия с пользователем, DAS AutoScale информирует вас о ходе выполнения и состоянии задачи с помощью уведомлений. Сообщения предоставляют информацию о событиях триггера исключения, предложениях по типу экземпляра и состоянии задачи управления. Событие триггера исключения предлагает вам запустить задачу масштабирования. Предложения по типу экземпляра описывают исходные и целевые значения для изменения размера хранилища и масштабирования экземпляра. Статус задачи управления указывает на ход выполнения и статус выполнения задачи AutoScale.

4.2 Описание решения

Для реализации этих возможностей продукта DAS AutoScale обеспечивает процесс обработки данных с обратной связью, как показано на рис. 1:

Этот процесс состоит из модуля сбора данных о производительности, центра принятия решений, модуля алгоритмов, модуля предложения и проверки типа экземпляра, модуля выполнения управления и модуля отслеживания состояния масштабирования. Эти модули обеспечивают следующие функции:

  • Модуль сбора данных о производительности собирает данные о производительности экземпляров в режиме реального времени, включая информацию о показателях производительности базы данных, конфигурациях и сеансах экземпляров.
  • Центр принятия решений принимает глобальные решения на основе такой информации, как текущие данные о производительности и список сеансов экземпляра, для решения проблемы 1. Например, центр принятия решений может включить регулирование SQL для решения проблемы нехватки вычислительных ресурсов или возобновить работу. Процесс AutoScale в ответ на внезапный всплеск бизнес-трафика.
  • Являясь основным модулем DAS AutoScale, модуль алгоритма предоставляет модели для обнаружения аномальной загрузки служб и рекомендует подходящую емкость хранилища или тип экземпляра. Он решает задачи 2 и 3.
  • Модуль предложения и проверки типа экземпляра предоставляет конкретные предложения и адаптирует тип развертывания экземпляра базы данных к фактической операционной среде. Он также сверяет тип развертывания с доступными типами экземпляров в текущем регионе, чтобы гарантировать, что предложения могут быть реализованы модулем выполнения управления.
  • Модуль исполнения управления распространяет и реализует предложения типа экземпляра.
  • Модуль отслеживания состояния масштабирования измеряет и отслеживает изменения производительности экземпляров базы данных до и после масштабирования экземпляра.

В следующем тексте описываются службы изменения размера хранилища и масштабирования экземпляра, предоставляемые DAS AutoScale.

На рис. 2 показано решение по изменению размера хранилища, предоставляемое DAS AutoScale. Это решение может быть запущено с помощью определяемых пользователем триггерных событий или прогнозов алгоритма. Если размер дискового пространства изменяется на основе предсказания алгоритма, AutoScale использует алгоритм предсказания временных рядов, чтобы предсказать будущее использование диска экземпляром базы данных на основе истории использования диска за указанный период времени. Если использование диска, вероятно, скоро превысит дисковое пространство вашего экземпляра, размер дискового пространства будет изменен автоматически. Вы можете каждый раз увеличивать дисковое пространство не менее чем на 5 ГБ и не более чем на 15 % исходного пространства, чтобы обеспечить достаточное дисковое пространство для вашего экземпляра базы данных.

В настоящее время время автоматического изменения размера хранилища определяется на основе как порогового значения, так и предсказания. Когда данные на диске растут медленно и достигают заданного порога (например, 90%), инициируется изменение размера хранилища. Если данные на диске быстро растут и ожидается, что в соответствии с прогнозом алгоритма скоро закончится место для хранения, AutoScale предоставит вам предложение по изменению размера хранилища и причину этого.

На рис. 3 показано решение для масштабирования экземпляра, предоставляемое DAS AutoScale. Во-первых, модуль обнаружения исключений обнаруживает всплеск трафика из нескольких измерений (таких как QPS, TPS, активные сеансы и IOPS). Затем центр принятия решений решает, следует ли реализовать автоматическое масштабирование. Затем модуль предложения и проверки типа экземпляра генерирует предложение по масштабированию, а модуль выполнения управления реализует предложение по масштабированию.

После окончания аномального трафика модуль обнаружения исключений определяет, нормализовался ли трафик. Затем исполнительный модуль управления уменьшает масштаб экземпляра до исходного типа экземпляра, записанного в метаданных. После завершения процесса масштабирования типа экземпляра модуль отслеживания состояния масштабирования отслеживает тенденцию изменения производительности в течение периода масштабирования и оценивает результаты.

В настоящее время AutoScale запускается в зависимости от продолжительности заданного пользователем окна наблюдения и информации об исключении, обнаруженной на основе различных показателей производительности экземпляра, таких как загрузка ЦП, дисковые операции ввода-вывода в секунду и логические операции чтения.

После запуска AutoScale модуль алгоритма использует хорошо обученную модель, чтобы предложить тип экземпляра, подходящий для текущего трафика, на основе текущих данных о производительности, типа экземпляра и исторических данных о производительности. Время уменьшения масштаба также определяется на основе продолжительности определяемого пользователем окна тишины и данных о производительности экземпляра. Операция масштабирования запускается, когда выполняются указанные условия.

4.3 Основные технологии

DAS AutoScale опирается на общую техническую мощь команд канала передачи данных, управления и ядра для ApsaraDB. В основном используются следующие ключевые технологии:

1) Мониторинг базы данных второго уровня. В настоящее время процесс мониторинга и сбора позволяет осуществлять сбор, мониторинг, отображение и диагностику данных второго уровня для всех экземпляров базы данных, развернутых в Alibaba Cloud. DAS AutoScale способен обрабатывать более 10 миллионов метрик мониторинга в секунду в режиме реального времени, закладывая прочную основу данных для интеллектуальных служб баз данных.
2) Единый поток задач управления RDS: в настоящее время поток задач используется для эксплуатации и обслуживания всех экземпляров базы данных, развернутых в облаке Alibaba, обеспечивая надежную поддержку реализации AutoScale.
3) Алгоритм обнаружения исключений временных рядов, основанный на прогнозировании и машинном обучении: Алгоритм предоставляет множество функций, таких как периодическое обнаружение, определение точки поворота и непрерывная идентификация интервала исключений. В настоящее время DAS может прогнозировать трафик данных более чем 100 000 экземпляров онлайн-базы данных на один день вперед с коэффициентом ошибки прогноза менее 5% для более чем 99% экземпляров. Он также может прогнозировать трафик данных на 14 дней вперед с частотой ошибок менее 5 % для более чем 94 % экземпляров.
4) Модель прогнозирования времени отклика базы данных на основе глубокого обучения (RT). Этот алгоритм может прогнозировать значение RT работающего экземпляра базы данных на основе нескольких показателей, таких как загрузка ЦП, логические чтения, физические чтения и IOPS экземпляра. Значение RT дает рекомендации по масштабированию памяти буферного пула, экономя более 27 ТБ пространства памяти (около 17% от общего объема памяти) для баз данных Alibaba.
5) PolarDB на основе облака вычислительная архитектура:PolarDB — это реляционная база данных нового поколения, разработанная командой Alibaba Cloud для работы с базами данных в эпоху облачных вычислений. Вычислительные узлы отделены от узлов хранения, что обеспечивает мощную техническую поддержку AutoScale. Это позволяет избежать дополнительных накладных расходов, связанных с копированием хранилища данных, что значительно улучшает возможности AutoScale.

Благодаря этим технологиям DAS AutoScale предоставляет рекомендации по выбору типа экземпляра и изменению размера хранилища для баз данных RDS и PolarDB. Он обеспечивает согласованность и целостность данных во время автоматического масштабирования, не влияя на стабильность бизнеса.

4.4 Практический пример

На рис. 4 показан процесс автоматического масштабирования экземпляра. В 19:43 в бизнес-системе внезапно возник аномальный трафик, что привело к резкому скачку загрузки ЦП и активных сеансов. Загрузка ЦП увеличилась примерно с 10% до более чем 70%, что привело к нехватке ресурсов ЦП.

В этом случае 15-минутное окно наблюдения и условие срабатывания при использовании ЦП, превышающем 70 %, были настроены, чтобы избежать частых срабатываний операций AutoScale. Аномальный трафик продолжался до 19:58, что соответствовало условию срабатывания. Контрольная задача была выполнена в течение 7 минут, окончание масштабирования основного узла в 20:05. Сравнение использования ресурсов до и после масштабирования показывает, что загрузка ЦП и IOPS экземпляра были относительно высокими до операции масштабирования и значительно снизились после нее.

AutoScale предоставляется бесплатно в Alibaba Cloud Database Autonomy Service (DAS), так что не забудьте попробовать его уже сегодня!

Оригинальный источник: