Настройка 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 + конфиги учитывают максимально настройки устраняющие узкие места в работе базы данных.

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

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

19 + = 22

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

Обновление Woodmart 6.1.3 что вышло нового: обзор всех изменений

Улучшение функционала и возможностей WoodMart WordPress продолжается и было выпущено новое значительное обновление 6.1. Основное направление сейчас - оптимизация как с точки зрения скорости, так и с точки зрения удобства пользователей. Много также изменений некоторых настроек темы, чтобы помочь людям находить некоторые настройки и...

Обзор визуального конструктора WordPress Zion Builder, легкий и пока бесполезный

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

Быстрые покупки на Woocommerce – плагин Экспресс шоп, продажа товаров с 1 страницы

Express Shop - это надстройка WooCommerce для отображения всех продуктов на одной странице с помощью кнопки AJAX «Добавить в корзину». Покупатели могут быстро отфильтровать товары и ускорить процесс покупки. Функции включают в себя несколько шаблонов стилей , загружать больше, бесконечную прокрутку, быструю плавающую корзину,...

Как убрать вкладки на странице товаров Woocommerce (вариант Амазона без табов)

Если вам нравится макет страницы одного продукта Amazon, вам, вероятно, не нравится макет вкладок страницы одного продукта WooCommerce по умолчанию. В этом разделе по умолчанию отображаются «Описание», «Обзоры», «Дополнительная информация» и другое настраиваемое содержимое… в виде вкладок под изображением и кратким описанием. К счастью, есть очень...

Аналог Contact Form 7 – настройка и описание премиум плагина Form Builder

Начну с того почему я всегда использую аналог Contact Form 7 плагина для Wordpress и не рекомендую использовать этот плагин. Слишком большое распространение и бесплатность сыграли злую шутку с сайтами где этот плагин установлен. На него написано много инструментов автоматического спама. Вы еще не...

Структура базы данных WooCommerce: хранение данных, где что находится

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