Конфигурация MySQL / MariaDB для каталога 50 000 товаров (8 GB RAM)

Обновлено: Сентябрь 2026 Стек: MySQL 8.0 / MariaDB 11, RAM 8 GB, NVMe Проверено: Production-Ready

Профессиональный конфиг my.cnf под 8 GB RAM: innodb_buffer_pool_size = 5G, 4 инстанса пула, innodb_io_capacity = 2000 для быстрых NVMe дисков.

Интерактивный генератор под ваши параметры
Параметры подставляются в код в реальном времени
/etc/mysql/my.cnf
# /etc/mysql/my.cnf
[mysqld]
# Настройки для 50 000 товаров на VDS 8 GB RAM с NVMe
max_connections = 250
wait_timeout = 45
connect_timeout = 10

# InnoDB Buffer Pool
innodb_buffer_pool_size = 5G
innodb_buffer_pool_instances = 4
innodb_log_file_size = 1G
innodb_log_buffer_size = 128M
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT

# NVMe Дисковые операции (I/O)
innodb_io_capacity = 2000
innodb_io_capacity_max = 4000
innodb_read_io_threads = 8
innodb_write_io_threads = 8

# Буферы и сортировка
sort_buffer_size = 4M
read_buffer_size = 2M
read_rnd_buffer_size = 4M
join_buffer_size = 4M
tmp_table_size = 128M
max_heap_table_size = 128M

table_open_cache = 8000
table_definition_cache = 4000
open_files_limit = 131072

slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 1.0

Разбор ключевых директив конфигурации

Техническое обоснование директив и их прямое влияние на процессор (CPU), оперативную память (RAM) и дисковый ввод-вывод (NVMe I/O).

Директива / Блок Рекомендуемое значение Зачем нужно и системное влияние (CPU / RAM / I-O)
innodb_io_capacity = 2000 2000 IOPS Задает лимит фоновых операций ввода-вывода под скорость NVMe SSD накопителей, исключая зависания при сбросе грязных страниц.
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 под этот стек

Расчет минимальной и оптимальной конфигурации виртуального сервера для стабильной работы без сбоев.

Оптимальный сайзинг: 4 vCPU, 8 GB RAM, 80-100 GB NVMe
Расчетная нагрузка: до 50 000 товаров, ~10 000 хостов/день
4 CPU / 8 GB NVMe
⚡

Timeweb Cloud

Рекомендуемые ресурсы
4 vCPU / 8 GB RAM / 100 GB NVMe
4 vCPU / 8 GB RAM
🔷

Selectel

Рекомендуемые ресурсы
4 vCPU / 8 GB RAM / 100 GB NVMe
Turbo 8 GB
🟠

Beget

Рекомендуемые ресурсы
4 vCPU / 8 GB RAM / 100 GB NVMe

Онлайн-утилиты SysKit для проверки этого сервера

Протестируйте корректность применения конфигурации прямо сейчас в один клик.

Частые ошибки при настройке и их решение (FAQ)

Типовые проблемы вебмастеров и сисадминов при внедрении данной конфигурации.

Почему при смене innodb_log_file_size MySQL не стартует?
В современных версиях MySQL 8.0/MariaDB 10.11 размер лога меняется автоматически, но перед редактированием обязательно корректно остановите сервис: `systemctl stop mysql`.
Как понять, что пулу 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`.