Настройка my.cnf для стабильной работы Mysql

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

Я обычно использую сервера на уровне ксеонов с 32 гигабайтами памяти, поэтому найти нужную конфигурацию настроек mysql достаточно трудно, отсюда и попытки настроить самому методом тыка и проб. Что из этого получилось сегодня я постараюсь рассказать.

Исходные данные для настройки

Итак рассматриваем систему с установленным ISP manager на котором стоит Centos и MariaDB. Задача, оптимизировать работу Mysql и ускорить тем самым обработку запросов на сайтах. Для начала я приведу, пример своего my.cnf который находится по адресу etc/my.cnf, если у вас стоит Debian то смотреть надо в папке другой. Итак вот так выглядит настроенный файл, но иногда я все таки еще изменяю некоторые настройки, о которых расскажу ниже.

Тюнинг базы данных Mysql варианты

Итак что я меняю и что вижу при этом. Для начала выведу основные параметры которые считаю спорными в настройке.

Разбор параметров тюнинга Mysql

Разберёмся по порядку с каждым параметром настройки и вопросами которые есть при этом. Итак по пунктам.

key_buffer = 2Gkey_buffer_size = 4G
Так и не смог я понять, различаются ли эти два параметра или первый является устаревшим значением второго.

max_connections = 500 и thread-cache-size = 500 
По замерам выходило, что не более 90 одновременных подключений, так и поставил 500 с запасом. Тут следует учесть что следующий параметр thread-cache-size должен быть одинаковым числом с максимальным соединением. Поэтому там также стоит 500.

table-cache = 120000 и table-open-cache = 120000 
Здесь я поставил по 120000, так как таблиц у меня достаточно много, если у вас не много сайтов, то этот параметр можно не повышать.

interactive-timeout = 360
Установил в 360, чтобы снимались запросы, которые находятся без активности 6 минут или 360 секунд.

query_cache_limit = 12Mquery_cache_size    = 4Gjoin_buffer_size = 512M
Следующие три параметра настроил исходя из следующих наблюдений. Пробовал ставить query_cache_size от 2 до 6 гигабайт, в итоге оптимально показалось 4. Обработка запросов до 12 мегабайт мне вполне хватало, поэтому оставил 12. Но есть такое мнение, что большой query_cache_size на самом деле сильно грузит систему и желательно держать кеш в memcashed, на практике я не заметил особо, чтобы он забирал мощность, а вот при проверке кеша, обнаружил, что много запросов проходит через него.

sort_buffer_size    = 1Gread_buffer_size    = 1Gread_rnd_buffer_size = 2G
Буфера поставил побольше, так как несколько баз имеют большой размер, хотя есть риск переполнения памяти, тем не менее они настолько не забивали память.

Новые изменения настройки my.cnf в 2021 году

Времена идут, знания становятся лучше, поэтому я уже практически во многом перенастроил свои файлы конфигов базы данных. Сразу скажу, что в основном этот конфиг рассчитан по моим базам данных, это порядка 14 гигабайт данных на серверах с 32 памяти оперативной, ssd дисками и собственно выкручено все на соотношение скорость работы + стабильность. Поэтому вот такой конфиг сейчас использую на Centos 8 с указанными параметрами серверов.

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

Добавить в избранное -пригодится

5 КОММЕНТАРИИ

  1. Дополнение:
    Дополнительно можно привести примеры изменений настроек, которые автор применил для оптимизации работы MySQL. Например, он упоминает о возможности изменить параметр open_files_limit, установленный по умолчанию в 2000, чтобы увеличить количество одновременно открытых файлов базы данных. Также автор отключил возможность локальной загрузки данных в базу данных, установив параметр local-infile=0. Он также решил использовать отдельный файл для каждой таблицы базы данных, для чего установил параметр innodb_file_per_table = 1. Адрес файла конфигурации my.cnf также указан в дополнении.

  2. Какие конкретные настройки my.cnf были изменены для оптимизации работы MySQL и ускорения обработки запросов на сайтах?

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь

2 + = 4

Факторы ранжирования сайтов в поисковых системах Google и Яндекс особенности и отличия

Ранжирование сайта — это процесс определения его позиции в результатах поисковой выдачи. От того, насколько высоко находится сайт, зависит количество посетителей, которых он привлекает....

Комплексное руководство по настройке лимитов и производительности MariaDB с примерами

Правильная настройка лимитов MariaDB критически важна для оптимальной производительности и стабильности работы сервера баз данных. MariaDB — это популярная система управления базами данных, основанная на...

Нагрузка на сервер: определение причин с помощью утилит и систем контроля за сервером

Нагрузка на сервер — одна из самых распространенных проблем, с которой сталкиваются администраторы Linux-серверов. Неправильно распределенные ресурсы могут привести к снижению производительности, задержкам или...

Полная инструкция по мониторингу нагрузки серверов с помощью ATOP

ATOP — это мощный инструмент мониторинга производительности серверов Linux, который позволяет анализировать нагрузку в реальном времени, сохранять информацию для последующего анализа и выявлять узкие...

Настройка DNS, основное, вопросы, примеры записей

Каждое вычислительное устройство в Интернете получает уникальный IP-адрес, который идентифицирует его и позволяет взаимодействовать с другими устройствами. IP-адрес может быть 32-битным (IPv4) или 128-битным...

Advance COD or Partial payment for Order for WooCommerce — отключение методов оплаты и настройка наценки, настройки и обзор функционала

Advance COD or Partial Payment for Order for WooCommerce — это плагин, который открывает новые горизонты для управления процессами оплаты в интернет-магазинах на платформе...

Structured Data: Google Rich Snippet Schema for Event — SEO для событий, настройки и обзор функционала

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

bulk order plugin for WooCommerce — меню ресторана и массовые заказы, настройки и обзор функционала

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

EntraID Login — интеграция с Office 365 и Azure, настройки и обзор функционала

EntraID Login – это плагин, который позволяет интегрировать Ваш WordPress сайт с системами Office 365 и Azure Active Directory, обеспечивая удобный и безопасный способ...

ПОХОЖИЕ СТАТЬИ

Использование MariaDB Galera Cluster для WordPress

Использование MariaDB Galera Cluster для WordPress может быть важным шагом в создании высоконадёжной и масштабируемой платформы для вашего сайта. Galera Cluster позволяет вам иметь...

Как восстановить MySQL или MariaDB базу данных WordPress

Восстановление базы данных MySQL или MariaDB для WordPress — это процесс, который может показаться сложным, но, следуя четким шагам, вы можете вернуть ваш сайт...

Как восстановить WordPress из резервной копии базы данных MySQL или MariaDB

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

Как восстановить резервную копию базы данных MySQL или MariaDB для WordPress

Восстановление резервной копии базы данных MySQL или MariaDB для WordPress — это задача, которая требует своего рода изящества и внимательности. Если ваша база данных...

Как изменить версию базы данных MySQL или MariaDB в WordPress

Изменение версии базы данных MySQL или MariaDB в WordPress может стать довольно актуальной задачей для веб-разработчиков и администраторов сайтов. Иногда это нужно для улучшения...

Как изменить движок базы данных MySQL или MariaDB в WordPress

Изменение движка базы данных MySQL или MariaDB в WordPress может показаться сложной задачей, но на самом деле, это процесс, который можно выполнить с минимальными...

Как изменить имя пользователя базы данных MySQL или MariaDB в WordPress

Изменение имени пользователя базы данных MySQL или MariaDB в WordPress может показаться сложной задачей, но на самом деле это всего лишь несколько простых шагов....

Как изменить кодировку базы данных MySQL или MariaDB в WordPress

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

Как изменить кодировку таблиц базы данных MySQL или MariaDB в WordPress

Чтобы правильно работать с базами данных в WordPress, важно понимать, какую роль играют кодировки. Исправление кодировки таблиц базы данных MySQL или MariaDB может предотвратить...

Как изменить пароль базы данных MySQL или MariaDB в WordPress

Изменение пароля базы данных MySQL или MariaDB в WordPress – это важный шаг для обеспечения безопасности вашего сайта. Если вы не наделали ошибок и...

Как изменить порт базы данных MySQL или MariaDB в WordPress

Чтобы изменить порт базы данных MySQL или MariaDB в WordPress, необходимо разобраться с тем, как это влияет на работу вашего сайта и какие шаги...

Как изменить префикс таблиц базы данных MySQL или MariaDB в WordPress через phpMyAdmin

Изменить префикс таблиц базы данных в WordPress — это задача, которая может понадобиться любому администратору сайта. Хотя процесс может показаться сложным, он вполне выполним....
OK2WEB
OK2WEB
Более 12 лет занимаюсь разработкой и продвижением сайтов. Городские порталы, информационные и новостные сайты. Сейчас в основном разрабатываю интернет магазины и коммерческие сайты. Если у вас есть вопросы пишите, стараюсь оперативно ответить и помочь.