Оптимизация MySQL под WordPress + WooCommerce с высокой посещаемостью
Готовый конфиг my.cnf под WordPress & WooCommerce: оптимизация запросов wp_postmeta и wp_options, отключение Query Cache, увеличение table_open_cache.
Интерактивный генератор под ваши параметры
Параметры подставляются в код в реальном времени
/etc/mysql/conf.d/wordpress.cnf
# /etc/mysql/conf.d/wordpress.cnf
[mysqld]
# Специфичный тюнинг под структуру таблиц WordPress/WooCommerce
innodb_buffer_pool_size = 2560M
innodb_buffer_pool_instances = 2
innodb_log_file_size = 512M
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
# Таблицы WooCommerce активно открывают сотни дескрипторов
table_open_cache = 6000
table_definition_cache = 3000
open_files_limit = 65535
# Увеличенные временные таблицы под сложные фильтры по метаполям wp_postmeta
tmp_table_size = 128M
max_heap_table_size = 128M
max_allowed_packet = 128M
# Быстрый сброс соединений ботов
wait_timeout = 30
interactive_timeout = 30
max_connections = 200
Разбор ключевых директив конфигурации
Техническое обоснование директив и их прямое влияние на процессор (CPU), оперативную память (RAM) и дисковый ввод-вывод (NVMe I/O).
| Директива / Блок | Рекомендуемое значение | Зачем нужно и системное влияние (CPU / RAM / I-O) |
|---|---|---|
table_open_cache = 6000 |
6000 таблиц | WooCommerce и плагины создают десятки динамических таблиц. Кэш предотвращает постоянные системные вызовы open() на диск. |
pm.max_requests |
500 - 1000 | Периодически перезапускает PHP-воркеры после обработки N запросов, предотвращая утечки оперативной памяти (Memory Leak). |
request_terminate_timeout |
180s | Принудительно убивает зависшие PHP-скрипты, защищая пул от полного исчерпания свободных процессов при тяжелых SQL-запросах. |
innodb_flush_log_at_trx_commit |
2 | Сбрасывает транзакции MySQL на диск раз в секунду вместо каждого коммита, увеличивая скорость записи в БД в 3-5 раз. |
Рекомендуемые системные требования VDS под этот стек
Расчет минимальной и оптимальной конфигурации виртуального сервера для стабильной работы без сбоев.
Оптимальный сайзинг: 2-4 vCPU, 4-8 GB RAM, 60 GB NVMe
Расчетная нагрузка: до 20 000 просмотров товаров/день
2 CPU / 4 GB NVMe
Timeweb Cloud
Рекомендуемые ресурсы
2-4 vCPU /
4-8 GB RAM /
60 GB NVMe
2 vCPU / 4 GB RAM
Selectel
Рекомендуемые ресурсы
2-4 vCPU /
4-8 GB RAM /
60 GB NVMe
Turbo 4 GB
Beget
Рекомендуемые ресурсы
2-4 vCPU /
4-8 GB RAM /
60 GB NVMe
Онлайн-утилиты SysKit для проверки этого сервера
Протестируйте корректность применения конфигурации прямо сейчас в один клик.
Частые ошибки при настройке и их решение (FAQ)
Типовые проблемы вебмастеров и сисадминов при внедрении данной конфигурации.
Почему тормозит таблица wp_options?
В таблице скапливаются устаревшие transient-кэши с `autoload = 'yes'`. Рекомендуется очистить транзиенты и подключить Redis Object Cache.
Как понять, что пулу PHP-FPM не хватает памяти?
В логе `/var/log/php-fpm.log` появляется предупреждение `server reached pm.max_children setting, consider raising pm.max_children`. Также команда `dmesg | grep oom` покажет OOM-киллер.
Нужно ли перезагружать службу после изменения параметров?
Да, для применения настроек выполните: `systemctl restart php8.2-fpm` (или вашу версию PHP) и `systemctl restart mysql`.
Рекомендуемые смежные конфигурации
Дополнительные рецепты и калькуляторы для полной оптимизации данного серверного стека.