Надішліть 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:

# dnf install php-opcache -y

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

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

Налаштування параметрів OPcache в конфігураційному файлі

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

# nano /etc/php.d/10-opcache.ini

Додайте наступні універсальні настройки, які підходять для більшості 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:

# service httpd restart

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

# php -v

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.

Leave a Reply

Your email address will not be published. Required fields are marked *