Практика технологии искусственного интеллекта Tencent Cloud CDB: CDBTune

искусственный интеллект база данных Тенсент MySQL

Приветствую всех вОблако Tencent + сообщество, получить больше крупной технической практики Tencent по галантерее ~

автор: Син Цзяшу, старший инженер, в настоящее время работает в группе базы данных отдела инфраструктуры Tencent TEG. Техническая группа базы данных Tencent поддерживает ветку ядра MySQL TXSQL, которая на 100% совместима с собственной версией MySQL, поддерживает красные конверты WeChat, лотереи и другие внутренние групповые предприятия, а также предоставляет версию ядра для Tencent Cloud CDB для MySQL извне.

Введение: CDBTuneОн независимо разработан Tencent Cloud.Интеллектуальный инструмент настройки производительности базы данных. По сравнению с существующими распространенными в отрасли методами, CDBTune не требует разделения типов нагрузки и накопления большого количества выборок.интеллектуальное обучениеУчаствуйте в настройке параметров, чтобы получить лучшие эффекты настройки параметров.

Система базы данных сложна, а нагрузка переменная, и настройка для администраторов баз данных очень сложна:

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

Подводя итог,Три главных вопроса:сложный,низкая эффективность,высокая стоимость. Как интеллектуальные инструменты настройки производительности Tencent Cloud могут решить эти проблемы на постоянной основе?

Практика 1: эвристический метод поиска/алгоритм, основанный на поиске

img

входитьВключает в себя две части:

  • Ограничения параметров: включая набор параметров для настройки и верхнюю и нижнюю границы параметров;
  • Ограничение ресурсов: через сколько раундов процесс настройки останавливается.

**Сэмплер конфигурации:** выберет входные параметры и сгенерирует конфигурацию; конфигурация будет настроена на SUT (то есть на настраиваемую среду).System**Манипулятор:** Он взаимодействует с ТУС, устанавливает параметры и получает данные о производительности ТУС.

Performance**Оптимизатор:** Найдите оптимальную конфигурацию на основе данных о конфигурации и производительности. Алгоритм PO в основном включает два метода: DDS и RBS.

lDivide-and-Diverge Sampling (DDS)

Здесь DDS используется для разделения подпространства параметров, чтобы уменьшить сложность задачи. Сначала каждый параметр разбит на k областей, затем имеется k^n комбинаций из n параметров, что снижает сложность. Предполагая, что k и n относительно велики, пространство все еще может быть большим. Как с этим бороться? В настоящее время можно использовать метод супервыборки, и для решения проблемы можно извлечь только k выборок.

lRecursive Bound-and-Search (RBS)

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

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

Практика 2: Методы машинного обучения/Машинное обучение

img

В основном он включает три шага:

lОпределение характеристик нагрузки

Размерность уменьшена для метрики, которая относится к индикаторам внутреннего состояния системы, например innodb_metric MySQL. Здесь используются два метода: один - FA, а другой - кластеризация K-средних.

  • Определение параметров конфигурации и зависимостей производительности

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

  • Автоматическая настройка

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

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

Практика 3: Методы глубокого обучения/Глубокое обучение

img

Через сеть глубокого обучения рекомендуются параметры, которые необходимо окончательно настроить:

  • Получите внутреннюю метрику, соответствующую рабочей нагрузке
  • Изучите правило изменения внутренней метрики в процессе настройки параметров
  • Изучите параметры, которые в конечном итоге необходимо настроить

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

Практика 4: метод глубокого обучения с подкреплением/обучение с подкреплением

img

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

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

Для обучения с подкреплением и настройки параметров мы определяем следующие правила:

  • Правило: Регулируйте параметры через равные промежутки времени, чтобы получить данные о производительности.
  • Вознаграждение: положительное значение вознаграждения за улучшение производительности, отрицательное значение вознаграждения за снижение
  • Цель: скорректировать время/количество раз как можно меньше, чтобы получить более высокое ожидаемое вознаграждение.
  • Статус: внутренние метрики системы

Мы называем внутренние метрики системы внутренними метриками, внешние данные о производительности, такие как TPS/QPS/Latency, называем внешними метриками. В сценарии настройки параметров базы данных конкретный метод заключается в следующем: агент выбирает действие с настроенными параметрами (или несколько параметров) для воздействия на базу данных и рассчитывает немедленное вознаграждение, которое должно быть получено в соответствии с внешними индикаторами после выполнения действия. действие.

В обучении с подкреплением этому сценарию настройки параметров соответствует обучение. Проблема с этим сценарием заключается в том, что для обучения с подкреплением необходимо построить таблицу, чтобы показать, что в определенном состоянии, после выполнения определенной операции и получения выгоды, мы знаем только, какая операция выполняется для получения наибольшей выгоды. Однако пространство состояний (показатель производительности) и пространство действий (комбинация конфигураций) базы данных особенно велики, и объединить такую ​​таблицу — невыполнимая задача. На этом этапе нам пригодится глубокое обучение с подкреплением.Мы должны аппроксимировать эффект этой Q-таблицы через глубокую сеть, которая является методом реализации CDBTune.

Реализация CDBTune

img

  • S — текущее состояние производительности БД (внутренние индикаторы), S' — следующее состояние производительности БД
  • r — немедленное вознаграждение, w — параметр нейронной сети, a — предпринятое действие (выполнение параметра конфигурации)
  • Q - функция значения состояния-поведения

Эта модель в основном разделена на две части.

l Среда базы данных: в левой части рисунка параметры будут установлены в этой среде, а затем будут собраны внутренние и внешние индикаторы среды и возвращены в модель справа.

l Сеть глубокого обучения с подкреплением: в правой части рисунка алгоритм реализации аналогичен Nature DQN, выпущенному DeepMind, с использованием двух Q-сетей.

Кроме того, Replay Memory — это наш пул памяти, и исторические данные будут записаны. Затем обучение продолжит добавлять в пул памяти. Сеть глубокого обучения будет случайным образом выбирать образцы моделей из пула памяти для обучения.

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

img

Это значение Q получается приблизительно. Для выборки (s, a) мы можем получить реальную доходность r. В это время мы можем получить их предыдущий убыток и настроить сеть слева, чтобы убыток с обеих сторон становился все меньше и меньше. Таким образом, наша сеть будет постепенно сходиться и получать лучшие рекомендации.

Формы данных и соответствующие стратегии

img

img

оценка эффекта

img

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

Суммировать:

Преимущества интеллектуальной настройки параметров на основе DQN

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

На практике мы также столкнулись с некоторыми проблемами:

  • Выберите действие для фактического запуска, эффективность обучения невелика, а период обучения длительный.
  • Дискретность непрерывной конфигурации может привести к низкой точности рекомендуемой конфигурации и медленной сходимости.
  • Используйте максимальное значение Q действия, что приводит к проблеме переоценки значения Q.

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

Эта статья была разрешена автором для публикации сообщества Tencent Cloud +, исходная ссылка: https://cloud.tencent.com/developer/article/1140693?fromSource=waitui.

Приветствую всех вОблако Tencent + сообществоИли обратите внимание на общедоступную учетную запись WeChat сообщества Yunjia (QcloudCommunity) и как можно скорее получите больше массовой технической практики галантерейных товаров ~