Устанавливаем innodb_buffer_pool_size на 50% ОЗУ для VPS — одна эта настройка ускоряет сайт в 2‑3 раза
Дата публикации: 24.06.2026

Устанавливаем innodb_buffer_pool_size на 50% ОЗУ для VPS — одна эта настройка ускоряет сайт в 2‑3 раза

Хочу себе такие же кнопки
ccb9a536

Что вы получите от этой настройки

  • Вдвое‑тройное ускорение работы сайта на Битриксе без покупки нового сервера.
  • Понимание, как MySQL InnoDB использует память и почему именно 50 % ОЗУ – «золотая середина» для большинства VPS.
  • Пошаговый план, который можно выполнить за 5‑10 минут, даже если вы только начали работать с сервером.

1. Почему InnoDB «тормозит» без правильного пула памяти

Показатель Что происходит без настройки Что происходит с правильным innodb_buffer_pool_size
Диск‑операции Каждый запрос к таблице читается с SSD/HDD → задержки 5‑20 мс Большая часть данных хранится в ОЗУ → чтения из памяти (≈ 0,1 мс)
CPU‑нагрузка Частые переключения между диск‑ и память‑операциями → высокий процент iowait Минимум переключений, процессор обслуживает запросы быстрее
Скорость сайта Страницы загружаются 2‑3 секунды Время отклика падает до 0,8‑1,2 секунд

InnoDB хранит часто используемые данные (строки, индексы) в буфере пула (innodb_buffer_pool). Если пул слишком маленький, MySQL постоянно «выбрасывает» данные на диск и снова их загружает — это и есть главный виновник «торможки».


2. Как выбрать размер пула: правило 50 % ОЗУ

  1. Определяем объём оперативной памяти вашего VPS.

    free -m | grep Mem

    Пример вывода: Mem: 2048 1800 248 → 2 ГБ ОЗУ.

  2. Берём 50 % от этого числа:
    2048 МБ × 0,5 = 1024 МБ.

  3. Почему именно 50 %?

    • Оставляем половину памяти для ОС, веб‑сервера (Apache/Nginx), PHP‑FPM, кэшей (OPcache, Redis) и прочих сервисов.
    • При превышении ~70 % InnoDB может «переполнять» память, вызывая свопинг и ухудшая производительность.

Аналогия: представьте, что ваш сервер — это стол, на котором работают несколько человек. Если один человек (InnoDB) займет весь стол, остальные (OS, веб‑сервер) не смогут разместить свои вещи, и всё будет «переполнено». Делим стол пополам — каждый получает достаточно места.


3. Как изменить innodb_buffer_pool_size

3.1. Редактируем конфигурационный файл

Обычно файл находится в /etc/mysql/my.cnf или /etc/mysql/mysql.conf.d/mysqld.cnf. Откройте его в редакторе:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Найдите секцию [mysqld] и добавьте (или измените) строку:

innodb_buffer_pool_size = 1G   # 1 ГБ = 50 % от 2 ГБ ОЗУ

Важно: указывайте размер в гигабайтах (G) или мегабайтах (M). Не используйте кавычки.

3.2. Проверяем синтаксис

sudo mysqld --verbose --help | grep innodb_buffer_pool_size

Если вывод показывает 1G, всё правильно.

3.3. Перезапускаем MySQL

sudo systemctl restart mysql

3.4. Проверяем, что MySQL принял значение

SHOW VARIABLES LIKE 'innodb_buffer_pool_size';

Ожидаемый результат: 1073741824 байт (1 ГБ).


4. Как убедиться, что ускорение действительно есть

4.1. До и после: измеряем InnoDB Buffer Pool

SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_reads';
SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_read_requests';
  • Innodb_buffer_pool_reads – количество чтений с диска.
  • Innodb_buffer_pool_read_requests – общее количество запросов к буферу.

Коэффициент кеширования:

SELECT 
    (1 - (Innodb_buffer_pool_reads / Innodb_buffer_pool_read_requests)) * 100 AS cache_hit_percent
FROM 
    (SELECT 
         VARIABLE_VALUE AS Innodb_buffer_pool_reads 
     FROM information_schema.GLOBAL_STATUS 
     WHERE VARIABLE_NAME='Innodb_buffer_pool_reads') AS reads,
    (SELECT 
         VARIABLE_VALUE AS Innodb_buffer_pool_read_requests 
     FROM information_schema.GLOBAL_STATUS 
     WHERE VARIABLE_NAME='Innodb_buffer_pool_read_requests') AS requests;

После изменения параметра процент «хитов» обычно подскается 90 %+.

4.2. Тестируем время отклика сайта

  • Без изменения: используйте curl -w "%{time_total}\n" -o /dev/null -s https://your-site.com → 2,3 сек.
  • После изменения: тот же запрос → 0,9 сек.

Разница в 2‑3 раз уже подтверждает эффективность.


5. Подводим итоги: что ещё стоит знать

Параметр Что делает Какой диапазон обычно выбирают
innodb_log_file_size Размер redo‑логов (записывает изменения) 256 МБ – 1 ГБ (зависит от нагрузки)
innodb_flush_log_at_trx_commit Как часто сбрасывать логи на диск 1 – самая надёжная, 2 – компромисс, 0 – быстрый, но риск потери данных
query_cache_type Кеширование результатов запросов (устарело в новых версиях) Отключить (0) для современных Битрикс‑сайтов

Эти параметры тоже влияют на производительность, но innodb_buffer_pool_size — «самый большой рычаг», который даёт мгновенный прирост.


6. Практика для закрепления

  1. Определите объём ОЗУ вашего VPS и вычислите 50 % в мегабайтах. Запишите результат.
  2. Отредактируйте файл mysqld.cnf, задав innodb_buffer_pool_size. Перезапустите MySQL и проверьте значение через SHOW VARIABLES.
  3. Сравните показатели Innodb_buffer_pool_reads до и после изменения (сделайте запросы к сайту, затем выполните SHOW GLOBAL STATUS). Как изменился процент кеширования?
  4. Измерьте время отклика главной страницы сайта до и после настройки (используйте curl). Какой прирост вы получили?
  5. Объясните коллегам, почему нельзя ставить innodb_buffer_pool_size равным 100 % ОЗУ. Приведите минимум два аргумента.

7. Часто задаваемые вопросы

Вопрос Краткий ответ
Что если у меня 4 ГБ ОЗУ? 50 % → 2 ГБ. Оставьте остальные 2 ГБ для ОС и приложений.
Можно ли увеличить до 75 %? Да, если вы уверены, что остальные сервисы используют мало памяти. Но в случае пикового нагрузки может появиться свопинг.
Нужен ли перезапуск MySQL? Да, изменения в my.cnf вступают в силу только после перезапуска.
Как проверить, не переполнен ли пул? SHOW ENGINE INNODB STATUS\G → ищите строку Buffer pool size.
Работает ли это на MariaDB? Да, параметры одинаковы, но команда перезапуска может быть systemctl restart mariadb.

8. Где почитать дальше


Поздравляем!

Вы только что настроили один из самых мощных ускорителей для вашего Битрикс‑сайта. Теперь ваш ресурс будет работать в 2‑3 раз быстрее, а вы сможете экономить на дорогих апгрейдах. Если возникнут вопросы — пишите в комментариях, и мы разберём их вместе. Удачной оптимизации!


CamZamZam - онлайн фото с вебкамеры с эффектами
Cartoon Network: игры с персонажами
Чат рулетка в 2026: будущие функции
Эксперт по доменным стратегическим решениям
Хостинг для e-commerce проектов
Как играть в слоты
Как настроить CDN для сайта на хостинге Host.bg
Как настроить SSL-сертификат для сайта на Host.bg
Как оптимизировать производительность сайта с хостингом Host.bg
Как выбрать правильный хостинг для вашего сайта
Какие бывают ЛОР болезни у детей
Кассовые терминалы с оплатой картами
LOL куклы витрина детская
Лучшие видеорегистраторы для водителей
Онлайн QR-код сканер
Онлайн-связь
Оптимизация производительности баз данных на хостинге Host.bg
Основы настройки веб-хостинга: что вам нужно знать
Партнёрская программа без блога: как получать трафик из Telegram
Профессиональные хитрости для пользователей хостинга Host.bg
Регистрация ИП в Москве для иностранных граждан
Сравнение хостинга Host.bg с другими провайдерами
Субтитры — нет, уши — включены: погружение в английский за 5 минут
Сумки с бусинами
Техника для строительства загородных трасс
ТОП-10 VPS для разработчика: рейтинг серверов под рабочие задачи
WordPress блог для бизнеса
рейтинг хостингов 2026 Быстрые VDS серверы