Перевод страницы документации Zend Opcache по параметрам.
- opcache.enable (значение по умолчанию “1”)
Включение/выключение OPcache. В выключенном состоянии код не оптимизируется и не кешируется.
- opcache.enable_cli (значение по умолчанию “0”)
Включение OPcache для CLI-версии PHP. Наилучшим образом подходит для тестирование и отладки.
- opcache.memory_consumption (значение по умолчанию “64”)
Размер используемой памяти для хранения прекомпилированного PHP-кода. Размер указывается в мегабайтах.
- opcache.interned_strings_buffer (значение по умолчанию “4”)
Количество памяти для пула строк в мегабайтах.
- opcache.max_accelerated_files (значение по умолчанию “2000”)
Максимальное количество ключей (скриптов) в хэш-таблице OPcache. Число должно быть простым и быть больше, чем те, что приведены в примере:{ 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987, 262237, 524521, 1048793 }. Допустимы числа между 200 и 1000000.
- opcache.max_wasted_percentage (значение по умолчанию “5”)
Максимальный процент “замусоренной” памяти для запланированного перезапуска.
- opcache.use_cwd (значение по умолчанию “1”)
При включении этого параметра, OPcache добавляет текущую рабочую директорию в ключ скрипта для предотвращения возникновения колизий между файлами с одинаковым именем. Выключение этой функции увеличивает производительность, но может нарушить работу приложений.
- opcache.validate_timestamps (значение по умолчанию “1”)
При отключенном параметре, появляется возможность обнуления OPcache вручную или перезапуском вебсервера для того, чтобы привести в актуальное состояние данных об изменениях в файлах. Частота проверки управляется параметром “opcache.revalidate_freq“.
- opcache.revalidate_freq (значение по умолчанию “2”)
Через какой промежуток времени (в секундах) проверять изменения временных меток для поддержания данных в памяти в актуальном состоянии. (“1” означает проверку с периодичностью раз в секунду для запроса, “0” – постоянная проверка)
- opcache.file_update_protection (значение по умолчанию “2”)
Предотвращает кеширование файлов, которые были изменены меньше, чем в указанное время (в секундах). Эта возможность защищает неполностью обновленные файлы от кеширования. В случае мгновенного обновления всех файлов, для увеличения производительности установите параметр равный “0”.
- opcache.revalidate_path (значение по умолчанию “0”)
Включение или отключение оптимизации поиска файлов в include_path. Если поиск файлов выключен и будет найден закешированный файл, используемый в include_path, файл не будет найден повторно. Таким образом, если файл с именем, попадающийся где-либо еще в include_path, он не будет найден. Включайте этот параметр только в случае, если это действительно принесет ожидаемый эффект ускорения. По умолчанию возможность отключена, т.е оптимизация активирована.
- opcache.save_comments (значение по умолчанию “1”)
Если выключено, все комментарии PHPDoc будут удалены из кода с целью уменьшения размера оптимизированного кода. Отключение параметра может вызвать некорректную работу некоторых приложений или фреймворков (к примеру, Doctrine, ZF2, PHPUnit)
- opcache.load_comments (значение по умолчанию “1”)
Если выключено, комментарии PHPDoc не будут загружаться из общей памяти. При включении вывода, комментарии будут сохранятся, но выводиться приложениями только в случае надобности.
- opcache.fast_shutdown (значение по умолчанию “0”)
Если включено, будет использоваться последовательность быстрых выключений для оптимизированного кода. Эта возможность не освобождает каждый используемый блок памяти, но позволяет работать Zend Engine Memory Manager.
- opcache.enable_file_override (значение по умолчанию “0”)
При включении OPcache будет проверять наличие закешированного файла при вызовах file_exists(),is_file() и is_readable(). Это может увеличить скорость работы в приложениях, которые проверяют расширение и читабельность PHP-скриптов, но появляется риск вывода устаревших данных в случае отключения параметра opcache.validate_timestamps.
- opcache.optimization_level (значение по умолчанию “0xffffffff”)
Маска битности, в которой каждый бит включает или отключает в соответствующие проходы OPcache.
- opcache.inherited_hack (значение по умолчанию “1”)
Включение этого хака в качестве рабочего окружения при ошибках вида “can’t redeclare class“.
По умолчанию возможность отключена, т.е оптимизация активирована. В php-5.3 и выше этот хак более не требуется и изменение параметра ни коим образом не скажется на работе.
- opcache.dups_fix (значение по умолчанию “0”)
Включайте этот параметр только при появлении ошибок вида “Cannot redeclare class“..
- opcache.blacklist_filename
Месторасположение списка файлов, к которым запрещен доступ для OPcache (поддерживаются маски). Каждый такой файл является текстовым файлом, в котором хранятся имена файлов, которые не требуется кешировать.Формат файла предусматривает размещение каждого имени файла в отдельной строке. Имя файла может содержать полный путь, либо префикс (к примеру /var/www/x укажет на все файлв в директориях, начинающихся на ‘x’. Строки, начинающиеся с “;” игнорируются (комментарии). Обычно, блокируют файлы следующих типов:
Директории, в которых содержатся автоматически генерирующиеся файлы с кодом (к примеру кеш Smarty или ZFW фреймворков)
Код, который не работает при кешировании/оптимизации
Код, который не отображается по причине ошибок в OPcache.
- opcache.max_file_size (значение по умолчанию “0”)
Позволяет исключать большие файлы из кеширования. По умолчанию кешируются все файлы.
- opcache.consistency_checks (значение по умолчанию “0”)
Проверять контрольную сумму кэша каждое N-ое количество запросов. По умолчанию параметр имеет значение равное нулю, что означает отключение проверки. Подсчет контрольной суммы снижает производительность, этот параметр следует включать только если требуется отладка.
- opcache.force_restart_timeout (значение по умолчанию “180”)
Какое время ожидать (а секундах) перед запланированной перезагрузкой в случае недоступности кэша.
OPcache использует этот параметр для определения ситуации появления возможных проблем. После истечение срока ожидания OPcache перезапускает процессы, которые были все это время заблокированы. Если уровень журналирования выставлен “3” (параметр opcache.log_verbosity_level) или выше, то в логи веб-сервера будет произведена запись “killed locker”.
- opcache.error_log
Определение названия и местоположения лога ошибок OPcache. При пустом значении ошибки выводятся в консоль.
- opcache.log_verbosity_level (значение по умолчанию “1”)
Все ошибки OPcache отправлять в лог-файл лог-файл веб-сервера. По умолчанию, журналируются только критические ошибки (level 0) или обычные ошибки (level 1). Так же можно включить выводит предупреждений (level 2), информационных сообщений (level 3) или отладочную информацию (level 4).
- opcache.preferred_memory_model
Предпочитаемый бэк-энд общей памяти. Можно оставить пустым и позволить системе самой разобраться.
- opcache.protect_memory (значение по умолчанию “0”)
Защите общей памяти от несанкционированной записи во время выполнения скрипта. Полезно только для отладки.
- opcache.restrict_api (значение по умолчанию “”)
Разрешение вызова API-функций OPcache из PHP-скриптов, путь к которым начинается тем, что указано в строке. По умолчанию пустое значение означает запрет на всё.
- opcache.mmap_base
Маппирование основных сегментов памяти (только для Windows). Все процессы PHP маппируются в общей памяти в некотором адресном пространстве. Этот параметр позволяет вручную исправить ошибки вида “Unable to reattach to base address“.
Рекомендованные минимальные параметры opcache:
opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=60 opcache.fast_shutdown=1 opcache.enable_cli=1
У меня есть телеграм-канал, где я пишу чуть чаще и менее формально 🙂 Подписывайся!