Как включить opcache php

Настройка PHP OPcache для оптимизация работы сайта

Zend OPcache — PHP-акселератор, обеспечивает ускорение выполнения PHP кода благодаря кэшированию и оптимизации, сохраняет скомпилированный байт-код в разделяемой памяти.

Opcache позволяет значительно ускорить скорость генерации страниц.

OPcache включен по умолчанию начиная с PHP 5.5

Создадим файл конфигурации OPcache:

echo > /etc/php.d/10-opcache.ini

и добавим в него конфиг (пример конфигурации)

Не стоит использовать готовые конфигурации найденные в интернете. Это может привести к остановке работы сайта. Подбирайте индивидуально.

zend_extension=opcache.so opcache.enable=1 opcache.memory_consumption=512 opcache.interned_strings_buffer=32 opcache.max_accelerated_files=130987 opcache.max_wasted_percentage=5 opcache.use_cwd=1 opcache.validate_timestamps=1 opcache.revalidate_path=1 opcache.enable_file_override=1 opcache.fast_shutdown=1 opcache.save_comments=1 opcache.load_comments=1

После чего необходимо перезапустить веб сервер, в данном случае apache

Включить JIT в PHP 8

Компилятор JIT (Just In Time) в PHP 8 реализован как часть расширения Opcache и призван компилировать операционный код в инструкции процессора в реальном времени. Что позволяет еще больше повысить производительность.

Для включения необходимо указать размер буфера opcache.jit_buffer_size, по умолчанию 0.

Добовляем в наш файл /etc/php.d/10-opcache.ini строку:

opcache.jit_buffer_size=128M

и перезапускаем веб сервер, это все что требуется.

Опции OPcache

Опция По молчанию Описание
opcache.enable 1 включение/выключение OPcache
opcache.enable_cli 0 включение OPcache при вызове PHP из командной строки
opcache.memory_consumption 64 размер используемой памяти (в мб.) для хранения прекомпилированного PHP-кода
opcache.interned_strings_buffer 4 количество памяти для пула строк в мегабайтах
opcache.max_accelerated_files 2000 максимальное количество ключей в хэш-таблице OPcache, допустимы значения между 200 и 1000000
opcache.max_wasted_percentage 5 максимальный процент замусоренной памяти для запланированного перезапуска
opcache.use_cwd 1 при включении добавляет текущую рабочую директорию в ключ скрипта для предотвращения возникновения колизий между файлами с одинаковым именем
opcache.validate_timestamps 1 возможность обнуления OPcache вручную или перезапуском веб-сервера для того, чтобы привести в актуальное состояние данных об изменениях в файлах
opcache.revalidate_freq 2 через какой промежуток времени (в секундах) проверять изменения временных меток для поддержания данных в памяти в актуальном состоянии, где 1 — проверка с периодичностью раз в секунду, 0 — постоянная проверка.
opcache.file_update_protection 2 предотвращает кэширование файлов, которые были изменены меньше, чем в указанное время (в секундах)
opcache.revalidate_path включение или отключение оптимизации поиска файлов в include_path
opcache.save_comments 1 если выключено, все комментарии PHPDoc будут удалены из кода с целью уменьшения размера оптимизированного кода.
opcache.load_comments 1 если выключено, то комментарии PHPDoc не будут загружаться из общей памяти
opcache.fast_shutdown 0 если включено, будет использоваться последовательность быстрых выключений для оптимизированного кода
opcache.enable_file_override 0 при включении OPcache будет проверять наличие закэшированного файла при вызовах file_exists(), is_file() и is_readable()
opcache.optimization_level 0xffffffff битовая маска, в которой каждый бит включает или отключает в соответствующие проходы OPcache
opcache.inherited_hack 1 включение этого хака при ошибках вида can’t redeclare class
opcache.dups_fix 0 Необходимо включить при появлении ошибок вида Can’t redeclare class
opcache.blacklist_filename месторасположение списка файлов, к которым запрещен доступ для OPcache
opcache.max_file_size 0 указывает максимальный размер файла для кеширования, позволяет исключать большие файлы
opcache.consistency_checks 0 проверять контрольную сумму кэша каждое N-ое количество запросов, подсчет контрольной суммы снижает производительность
opcache.force_restart_timeout 180 время ожидания (в секундах) перед перезагрузкой в случае недоступности кэша
opcache.error_log определение названия и местоположения лога ошибок OPcache
opcache.log_verbosity_level 1 все ошибки OPcache отправляет в лог-файл веб-сервера. По умолчанию логируются только критические ошибки (0) и обычные ошибки (1).
  • disable — Полностью отключён, не может быть включён во время выполнения.
  • off — Отключено, но может быть включено во время выполнения.
  • tracing — Используйте трассировку JIT. Включено по умолчанию и рекомендуется для большинства пользователей.
  • function — Использование функции JIT.

Похожие записи:

Источник

Используем OPCache для повышения производительности PHP на веб сервере

date

19.01.2021

user

VyacheslavK

directory

CentOS, Linux

comments

Комментариев пока нет

Zend Opcache – это расширение PHP, предназначенное для повышения производительности PHP, сокращения времени загрузки веб-страниц и уменьшения нагрузки на сервере.

Производительность достигается путем компиляции кода PHP файлов при первом обращении к ним. В результате при следующем доступе сервер не тратит ресурсы на повторное чтение и компиляцию php файла, а отдает готовый результат из кэша opcache. Т.е. opcache дает хорошие результаты для cms/файлов php скриптов, код которых редко изменяется.

В данной статье мы рассмотрим установку расширения OPcache, его настройку и использование с веб-сервером apache на примере Linux CentOS.

Установка расширения OPcache

Перед установкой самого расширения, нужно подключить репозитории EPEL и remi, а затем обновить пакеты на сервере с помощью yum (dnf):

# dnf install epel-release -y
# dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
# dnf update -y

Теперь можно установить opcahce для php:

linux установка php-opcache

На этом установка расширения OPcache завершена.

Настройка параметров OPcache в конфигурационном файле

Конфигурационный файл OPCache находится в директории /etc/php.d. Откройте его и очистите от стандартных записей:

Добавьте следующие универсальные настройки, которые подходят для большинства php проектов:

zend_extension=opcache.so opcache.enable=1 opcache.memory_consumption=512 opcache.interned_strings_buffer=512 opcache.max_accelerated_files=100000 opcache.max_wasted_percentage=1 opcache.validate_timestamps=1 opcache.revalidate_freq=0 opcache.fast_shutdown=1 opcache.save_comments=1 opcache.load_comments=1 opcache.blacklist_filename=/etc/php.d/opcache*.blacklist

подключение модуля opcache в конфигурационном файле php.d

После сохранения файла php.d перезапустите веб-сервера. В моем случае это apache:

Проверьт, что модуль Zend OPcache Engine подключён:

php -v проверка что подключен модуль zend opcache engine

Модуль успешно подключен. Рассмотрим опции, которые мы исопльзовали в конфигурационном файле:

  • zend_extension=opcache.so – подключение модуля расширения
  • opcache.enable=1 — включение/отключение OPcache
  • opcache.memory_consumption=512 – размер памяти для хранения кэша
  • opcache.interned_strings_buffer=512 — размер памяти для пула строк
  • opcache.max_accelerated_files=100000 — максимальное количество ключей в хэн-таблице OPcache
  • opcache.max_wasted_percentage=1 – максимальный процент потерянной памяти, после которой планируется перезапуск
  • opcache.validate_timestamps=1 — включение возможности обнуления вручную или рестартом веб-сервера(регулируется opcache.validate_timestamps)
  • opcache.revalidate_freq=0 — промежуток, через который будет выполнена проверка изменения временных меток, для поддержания актуальности данных, 0 — постоянная проверка, любое другое значение количество секунд
  • opcache.fast_shutdown=1 — если параметр включен, то будет использована быстрая последовательность перезагрузки, при которой не происходит очистки всех выделенных блоков памяти.
  • opcache.save_comments=1 — если выключено, все комментарии будут отброшены из кеша опкодов для минимизации размера кода.
  • opcache.load_comments=1 — если выключено, то комментарии PHPDoc не будут загружаться из общей памяти.
  • opcache.blacklist_filename=/etc/php.d/opcache*.blacklist — местоположение списка php файлов, который OPcache должен пропускать. Файл содержит имена файлов, которые не нужно оптимизировать, по одной записи на строку. Допустимы шаблоны поиска и префиксы. Строки, начинающиеся с точки с запятой игнорируются

Более детальную настройку можно выполнить согласно официальной документации по OPcache.

Сравнение производительности популярных CMS при использовании OPcache

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

  • Многие поисковые системы отдают предпочтение сайтам, с более быстрой загрузкой;
  • Быстрый отклик сайта сокращает число отказов. Посетители сайта охотнее задерживаются на таких сайтах;
  • Увеличение конверсии, за счет высокой производительности сервера;
  • Сокращение расходом на оборудование (из-за экономии ресурсов сервера).

В работе с различными CMS, мы заметили, что почти с любым сайтом, можно добиться хорошего результата в производительности: Использование памяти и время загрузки популярных CMS сокращается в 2-3 раза.

тестирование производительности различных популярных cms при использовании opcache

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

Экспериментируйте с настройками Opcache, уменьшая или увеличивая различные параметры, выполните тонкую настройку для своего сайта исходя из ресурсов сервера, тем самым вы добьетесь отличных результатов в производительности. Модуль Opcache также можно использовать в связке NGINX + PHP-FPM.

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

Источник

Читайте также:  Bitrix include file html
Оцените статью