OPcache - встроенный в PHP кэш скомпилированного байт-кода: без него сервер при каждом запросе заново читает и компилирует все PHP-файлы, с ним - берёт готовый результат из памяти. Для тяжёлых платформ вроде 1С-Битрикс, где на запрос подключаются сотни файлов, включённый и правильно настроенный OPcache ускоряет генерацию страниц в 2-3 раза. Это бесплатно: модуль входит в PHP начиная с версии 5.5, вопрос только в том, включён ли он у вас и с какими лимитами.
Сколько даёт OPcache и почему он бывает выключен
На типовом Битрикс-проекте включение OPcache снижает время генерации страницы с 0,8-1,2 секунды до 0,3-0,5 - это чувствуется и посетителями, и админкой. Выключенным он оказывается по трём причинам: дешёвый тариф хостинга, где модуль недоступен, устаревшая конфигурация, пережившая несколько переездов, или перестраховка после какого-то давнего конфликта. Во всех трёх случаях стоит навести порядок: одна настройка окупает час работы многократно.
Настройка OPcache: параметры, которые действительно важны
| Параметр | Рекомендация | За что отвечает |
|---|---|---|
| opcache.memory_consumption | 128-256 МБ | Память под кэш; мало - кэш вытесняется и толку нет |
| opcache.max_accelerated_files | 50000 и больше | Сколько файлов кэшируется; у Битрикс их десятки тысяч |
| opcache.validate_timestamps | 1 на типовом проекте | Проверять ли файлы на изменения |
| opcache.revalidate_freq | 2-60 секунд | Как часто проверять изменения файлов |
| opcache.interned_strings_buffer | 16-32 МБ | Буфер строк; экономит память на больших проектах |
Параметры задаются в php.ini или через панель хостинга. После изменения перезапустите PHP и убедитесь по phpinfo, что значения применились: частая история - правили не тот php.ini.
Настроим сервер под ваш сайт
Проверим PHP, OPcache, кэширование и лимиты, выставим параметры под реальный размер проекта и покажем замеры времени генерации до и после. Обычно на всё хватает одного дня.
Что настроить в PHP рядом с OPcache
Раз уж открыли настройки PHP, проверьте соседние пункты. Версия PHP: каждая мажорная версия быстрее предыдущей, переход с 7.4 на 8.2-8.3 сам по себе даёт десятки процентов ускорения. Лимит памяти: заниженный memory_limit роняет тяжёлые операции - разбор в статье про превышение лимита памяти PHP. Время выполнения: если скрипты упираются в максимум, читайте разбор ошибки maximum execution time exceeded - лечится не только увеличением лимита.
Почему OPcache включён, а сайт не ускорился
Первое - кэшу тесно: память забита, файлов больше лимита, кэш постоянно вытесняется и пересобирается. В phpinfo это видно по счётчикам заполненности и перезапусков. Второе - узкое место не в компиляции PHP: медленная база данных, внешние запросы, тяжёлый фронтенд. OPcache ускоряет только исполнение кода, поэтому диагноз ставится замером: если TTFB упал, а сайт всё равно ощущается медленным - копайте фронт и базу. Третье - на хостинге OPcache общий для всех клиентов и ваши файлы в нём не задерживаются: это аргумент в пользу переезда на нормальный тариф или VPS.
Частые вопросы про OPcache
OPcache и композитный кэш Битрикс - это одно и то же?
Сколько памяти выделить под OPcache?
После правок кода сайт не обновляется - это OPcache?
На виртуальном хостинге OPcache вообще доступен?
OPcache - типичный пример «бесплатного» ускорения, о котором забывают, потому что оно невидимо в браузере. Час на проверку и настройку - и сервер начинает отвечать вдвое быстрее. Не хочется лезть в php.ini самостоятельно - сделаем в рамках доработки сайтов: аудит серверных настроек, OPcache, кэширование и замеры, а на абонентской поддержке держим эти настройки в порядке после любых обновлений и переездов. Консультация бесплатная.












