Настраиваем OPcache — memory_consumption=256, max_accelerated_files=20000
Дата публикации: 24.06.2026

Настраиваем OPcache — memory_consumption=256, max_accelerated_files=20000

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

Что вы получите от урока

Вы узнаете, почему OPcache – это «ускоритель» для PHP‑скриптов, как правильно задать два самых влиятельных параметра memory_consumption и max_accelerated_files, и какие реальные выгоды это даст вашему сайту на Битриксе. После практической части вы сможете самостоятельно проверить, что кэш действительно работает, и быстро исправить типичные ошибки.


1. Почему OPcache нужен именно вам

  • Битрикс часто использует сотни небольших файлов‑модулей (компоненты, классы, шаблоны). При каждом запросе PHP читает их с диска, компилирует в байт‑код и исполняет.
  • OPcache сохраняет уже скомпилированный байт‑код в памяти, поэтому следующая загрузка файла происходит за микросекунды, а не за десятки миллисекунд.
  • Результат: время отклика сайта падает в 2–5 раз, а нагрузка на CPU и I/O уменьшается.

Аналогия: представьте, что каждый раз, когда вы хотите приготовить блюдо, вам нужно сначала собрать ингредиенты в магазине. OPcache – это ваш холодильник, где уже лежат готовые наборы, и вам лишь нужно их разогреть.


2. Основные параметры OPcache

Параметр Что делает Тип значения Рекомендованное значение для Битрикса
memory_consumption Объём памяти (МБ), выделенный под кэш байт‑кода целое число 256 МБ (по‑умолчанию 128 МБ)
max_accelerated_files Максимальное количество файлов, которые могут быть закешированы целое число 20 000 (по‑умолчанию 2000)
opcache.enable Включает/выключает кэш 0/1 1
opcache.validate_timestamps Проверять изменения файлов каждый revalidate_freq сек. 0/1 1 (в продакшене часто ставят 0)
opcache.revalidate_freq Период проверки времени изменения файлов (сек.) целое число 60 (если validate_timestamps=0 – не важно)

Эти два параметра – «топ‑лейдеры» в настройке, потому что они определяют сколько кода может храниться и сколько файлов будет обслуживаться без обращения к диску.


3. Параметр memory_consumption=256

3.1 Что именно измеряется?

memory_consumption – это общий объём ОЗУ, который OPcache использует для всех закешированных файлов. Внутри кэша хранятся:

  • байт‑код PHP‑скриптов,
  • таблицы хешей для быстрого поиска,
  • метаданные (время последней модификации, размер и т.п.).

3.2 Почему 256 МБ?

  • Битрикс в типичном магазине имеет от 5 000 до 15 000 файлов, каждый из которых в среднем занимает 8–12 КБ в кэше.
  • При 256 МБ вы получаете около 20 000 файлов (запас для будущих обновлений).
  • Если задать слишком маленькое значение, кэш будет «выбрасывать» старые файлы, и PHP будет вынужден их перекомпилировать – вы теряете эффект ускорения.

3.3 Как задать?

  1. Откройте файл php.ini (обычно /etc/php/8.1/fpm/php.ini или /etc/php/8.1/cli/php.ini).
  2. Найдите секцию [opcache] (если её нет – создайте).
  3. Добавьте/измените строку:
opcache.memory_consumption=256
  1. Сохраните файл и перезапустите PHP‑FPM:
systemctl restart php8.1-fpm

Важно: если у вас несколько PHP‑интерпретаторов (CLI, FPM, Apache), проверьте, что параметр изменён в каждом из них.


4. Параметр max_accelerated_files=20000

4.1 Как работает?

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

4.2 Почему именно 20 000?

  • Это число чуть выше реального количества файлов в типичном проекте Битрикса (10 000–15 000).
  • Оставляет «буфер» для будущих модулей, обновлений и кастомных скриптов.
  • При слишком большом значении (например, 100 000) вы рискуете «переполнить» memory_consumption и вызвать OOM‑ошибки.

4.3 Как задать?

В том же файле php.ini добавьте:

opcache.max_accelerated_files=20000

И перезапустите PHP‑FPM, как описано выше.


5. Проверка работы OPcache

5.1 Быстрый способ через phpinfo()

Создайте файл info.php в корне сайта:

<?php phpinfo(); ?>

Откройте его в браузере и найдите блок OPcache. Вы должны увидеть:

  • opcache.memory_consumption = 256
  • opcache.max_accelerated_files = 20000
  • opcache.enabled = 1

5.2 Команда opcache-status

Установите утилиту opcache-status (GitHub‑репозиторий). После установки откройте её в браузере – она покажет, сколько файлов уже закешировано, сколько памяти используется и сколько «свободно» осталось.

5.3 Тестовый скрипт

<?php
$start = microtime(true);
for ($i = 0; $i < 1000; $i++) {
    require_once __DIR__.'/bitrix/modules/main/classes/general/cuser.php';
}
$elapsed = microtime(true) - $start;
echo "Время загрузки 1000 файлов: {$elapsed} с";
?>

Запустите скрипт до и после включения OPcache. Разница должна быть в пределах 0.2–0.5 сек. при 1000‑кратных загрузках.


6. Частые ошибки и как их избежать

Ошибка Причина Как исправить
OPcache не включён opcache.enable=0 в php.ini Установите opcache.enable=1 и перезапустите PHP
Memory limit превышен memory_consumption слишком маленькое для заданного max_accelerated_files Увеличьте memory_consumption до 512 МБ или уменьшите max_accelerated_files
Файлы не кешируются после обновления opcache.validate_timestamps=0 в продакшене При разработке ставьте validate_timestamps=1; в продакшене используйте opcache.revalidate_freq=0 и вручную сбрасывайте кэш (opcache_reset()) после деплоя
Скрипт падает с ошибкой «OPcache memory allocation failed» Не хватает свободной ОЗУ на сервере Проверьте общую память (free -m) и, если нужно, перейдите на более мощный VDS (см. [VDSina] (https://vdsina.ru?partner=5095) rel="nofollow")
Кеш не обновляется после изменения файла opcache.validate_timestamps=0 и revalidate_freq слишком велик Установите opcache.validate_timestamps=1 или вручную вызывайте opcache_reset() после изменения кода

7. Лучшие практики для Битрикса

  1. Установите memory_consumption минимум 256 МБ – это «золотой стандарт» для большинства магазинов.
  2. max_accelerated_files ≥ 20000 – так вы покрываете даже крупные проекты с множеством модулей.
  3. Отключите opcache.enable_cli в продакшене, если не используете CLI‑скрипты, чтобы экономить память.
  4. Регулярно проверяйте статистику (opcache-status) – если % Used приближается к 100 %, увеличьте memory_consumption.
  5. При деплое используйте команду php -r 'opcache_reset();' или перезапускайте PHP‑FPM, чтобы очистить устаревший кэш.

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

  1. Измените параметры memory_consumption и max_accelerated_files в вашем php.ini. Перезапустите PHP‑FPM и проверьте через phpinfo(), что изменения применились.
  2. Сравните время выполнения простого скрипта, который подключает 500 файлов, до и после включения OPcache. Запишите разницу в секундах.
  3. Создайте небольшую нагрузку (например, с помощью ab или hey) и соберите статистику из opcache-status. Сколько файлов уже закешировано? Какой процент памяти используется?
  4. Сымитируйте обновление файла – измените один из файлов Битрикса, затем проверьте, изменилось ли время его загрузки. Если нет, что нужно поправить в конфигурации?
  5. Проведите аудит памяти: выполните free -m на сервере, сравните доступную ОЗУ с требуемой для memory_consumption=256. Если свободной памяти меньше 512 МБ, какие действия вы предпримете?

Итоги

  • OPcache – ключ к ускорению любого сайта на PHP, особенно на Битриксе, где файлов много.
  • Параметр memory_consumption=256 гарантирует достаточный объём памяти для кэширования десятков тысяч файлов.
  • Параметр max_accelerated_files=20000 позволяет хранить в кэше всё, что нужно вашему проекту, без «выбрасывания» старых файлов.
  • Правильная настройка, регулярный мониторинг и небольшие привычки (сброс кэша после деплоя) делают ваш магазин быстрым и экономичным.

Удачной оптимизации! 🚀


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 серверы