Приветствую всех вОблако Tencent + сообщество, получить больше крупной технической практики Tencent по галантерее ~
автор: Син Цзяшу, старший инженер, в настоящее время работает в группе базы данных отдела инфраструктуры Tencent TEG. Техническая группа базы данных Tencent поддерживает ветку ядра MySQL TXSQL, которая на 100% совместима с собственной версией MySQL, поддерживает красные конверты WeChat, лотереи и другие внутренние групповые предприятия, а также предоставляет версию ядра для Tencent Cloud CDB для MySQL извне.
Введение: CDBTuneОн независимо разработан Tencent Cloud.Интеллектуальный инструмент настройки производительности базы данных. По сравнению с существующими распространенными в отрасли методами, CDBTune не требует разделения типов нагрузки и накопления большого количества выборок.интеллектуальное обучениеУчаствуйте в настройке параметров, чтобы получить лучшие эффекты настройки параметров.
Система базы данных сложна, а нагрузка переменная, и настройка для администраторов баз данных очень сложна:
- Параметров много, до сотни
- Единого стандарта для разных баз данных нет, а названия, функции и взаимовлияние совершенно разные.
- Использование человеческого опыта для настройки, высокие трудозатраты и низкая эффективность
- Настройка инструмента, не универсальная
Подводя итог,Три главных вопроса:сложный,низкая эффективность,высокая стоимость. Как интеллектуальные инструменты настройки производительности Tencent Cloud могут решить эти проблемы на постоянной основе?
Практика 1: эвристический метод поиска/алгоритм, основанный на поиске
входитьВключает в себя две части:
- Ограничения параметров: включая набор параметров для настройки и верхнюю и нижнюю границы параметров;
- Ограничение ресурсов: через сколько раундов процесс настройки останавливается.
**Сэмплер конфигурации:** выберет входные параметры и сгенерирует конфигурацию; конфигурация будет настроена на 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: Методы машинного обучения/Машинное обучение
В основном он включает три шага:
lОпределение характеристик нагрузки
Размерность уменьшена для метрики, которая относится к индикаторам внутреннего состояния системы, например innodb_metric MySQL. Здесь используются два метода: один - FA, а другой - кластеризация K-средних.
- Определение параметров конфигурации и зависимостей производительности
Существуют сотни параметров конфигурации, которые сначала отсортированы по соотношению между параметрами линейной регрессии Лассо и производительностью. Установите приоритет параметров, которые имеют большое влияние на производительность.
- Автоматическая настройка
Соответствие целевой рабочей нагрузке, то есть по метрическим характеристикам нагрузки, работающей в разных конфигурациях, соответствует наиболее похожей нагрузке. Затем, в соответствии с согласованной нагрузкой, рекомендуется оптимальная конфигурация. Здесь используется процесс Гаусса, и одновременно добавляется разведка/эксплуатация, то есть процесс разведки и эксплуатации.
Проблема с этим методом заключается в том, что процесс настройки очень зависит от исторических данных, и могут быть сопоставлены только аналогичные рабочие нагрузки, а требования к обучающим данным относительно высоки. Если они не совпадают, вы не сможете найти хорошую конфигурацию.
Практика 3: Методы глубокого обучения/Глубокое обучение
Через сеть глубокого обучения рекомендуются параметры, которые необходимо окончательно настроить:
- Получите внутреннюю метрику, соответствующую рабочей нагрузке
- Изучите правило изменения внутренней метрики в процессе настройки параметров
- Изучите параметры, которые в конечном итоге необходимо настроить
Эта модель сильно зависит от обучающих данных и требует получения данных о производительности для различных рабочих нагрузок в различных конфигурациях. Существует слишком много комбинаций нагрузки и конфигурации базы данных, и охватить их в принципе невозможно. Предполагая, что подобные сценарии не могут быть сопоставлены, результаты настройки могут быть не идеальными.
Практика 4: метод глубокого обучения с подкреплением/обучение с подкреплением
В обучении с подкреплением процесс имитации взаимодействия человека с окружающей средой. Агент предпримет соответствующие действия в соответствии с наблюдаемым состоянием. В то же время Environment принимает действие и меняет свое состояние. Этот процесс будет генерировать соответствующие награды по определенным правилам, то есть оценке действий.
Наконец, путем практического сравнения мы выбираем модель, использующую обучение с подкреплением, и разрабатываем инструмент настройки параметров базы данных CDBTune. Он подчеркивает действие настройки параметров и отходит от подхода, ориентированного на данные.
Для обучения с подкреплением и настройки параметров мы определяем следующие правила:
- Правило: Регулируйте параметры через равные промежутки времени, чтобы получить данные о производительности.
- Вознаграждение: положительное значение вознаграждения за улучшение производительности, отрицательное значение вознаграждения за снижение
- Цель: скорректировать время/количество раз как можно меньше, чтобы получить более высокое ожидаемое вознаграждение.
- Статус: внутренние метрики системы
Мы называем внутренние метрики системы внутренними метриками, внешние данные о производительности, такие как TPS/QPS/Latency, называем внешними метриками. В сценарии настройки параметров базы данных конкретный метод заключается в следующем: агент выбирает действие с настроенными параметрами (или несколько параметров) для воздействия на базу данных и рассчитывает немедленное вознаграждение, которое должно быть получено в соответствии с внешними индикаторами после выполнения действия. действие.
В обучении с подкреплением этому сценарию настройки параметров соответствует обучение. Проблема с этим сценарием заключается в том, что для обучения с подкреплением необходимо построить таблицу, чтобы показать, что в определенном состоянии, после выполнения определенной операции и получения выгоды, мы знаем только, какая операция выполняется для получения наибольшей выгоды. Однако пространство состояний (показатель производительности) и пространство действий (комбинация конфигураций) базы данных особенно велики, и объединить такую таблицу — невыполнимая задача. На этом этапе нам пригодится глубокое обучение с подкреплением.Мы должны аппроксимировать эффект этой Q-таблицы через глубокую сеть, которая является методом реализации CDBTune.
Реализация CDBTune
- S — текущее состояние производительности БД (внутренние индикаторы), S' — следующее состояние производительности БД
- r — немедленное вознаграждение, w — параметр нейронной сети, a — предпринятое действие (выполнение параметра конфигурации)
- Q - функция значения состояния-поведения
Эта модель в основном разделена на две части.
l Среда базы данных: в левой части рисунка параметры будут установлены в этой среде, а затем будут собраны внутренние и внешние индикаторы среды и возвращены в модель справа.
l Сеть глубокого обучения с подкреплением: в правой части рисунка алгоритм реализации аналогичен Nature DQN, выпущенному DeepMind, с использованием двух Q-сетей.
Кроме того, Replay Memory — это наш пул памяти, и исторические данные будут записаны. Затем обучение продолжит добавлять в пул памяти. Сеть глубокого обучения будет случайным образом выбирать образцы моделей из пула памяти для обучения.
При оценке вознаграждения за действие мы исходим из допущения: наше вознаграждение зависит от результата каждого шага в будущем, и самым влиятельным является самое последнее вознаграждение. пройти через
Это значение Q получается приблизительно. Для выборки (s, a) мы можем получить реальную доходность r. В это время мы можем получить их предыдущий убыток и настроить сеть слева, чтобы убыток с обеих сторон становился все меньше и меньше. Таким образом, наша сеть будет постепенно сходиться и получать лучшие рекомендации.
Формы данных и соответствующие стратегии
оценка эффекта
Из теста видно, что CDBTune достигает лучшего эффекта настройки параметров за счет самообучения процесса настройки параметров без какого-либо предварительного сбора данных.Пропускная способность и характеристики задержки, полученные с помощью настройки CDBTune, находятся на относительно понятном уровне. В этом также заключается преимущество методов глубокого обучения с подкреплением по сравнению с некоторыми другими методами.
Суммировать:
Преимущества интеллектуальной настройки параметров на основе DQN
- Упрощение сложности и устранение необходимости точной классификации нагрузок
- Действие по настройке параметров больше соответствует фактической ситуации во время настройки параметров.
- Нет необходимости получать достаточное количество образцов, чтобы уменьшить нагрузку на ранний сбор данных.
- Используйте характеристики исследования и эксплуатации, чтобы уменьшить зависимость от обучающих данных и снизить вероятность попадания в локальный оптимум.
На практике мы также столкнулись с некоторыми проблемами:
- Выберите действие для фактического запуска, эффективность обучения невелика, а период обучения длительный.
- Дискретность непрерывной конфигурации может привести к низкой точности рекомендуемой конфигурации и медленной сходимости.
- Используйте максимальное значение Q действия, что приводит к проблеме переоценки значения Q.
В ответ на эти проблемы мы также постоянно оптимизируем и улучшаем нашу модель и оптимизируем параметры. Считается, что CDBTune может добиться лучших результатов в будущем.
Эта статья была разрешена автором для публикации сообщества Tencent Cloud +, исходная ссылка: https://cloud.tencent.com/developer/article/1140693?fromSource=waitui.
Приветствую всех вОблако Tencent + сообществоИли обратите внимание на общедоступную учетную запись WeChat сообщества Yunjia (QcloudCommunity) и как можно скорее получите больше массовой технической практики галантерейных товаров ~