5 ответов:
установка
OpCache компилируется по умолчанию на PHP5.5+. Однако по умолчанию он отключен. Для того, чтобы начать использовать OpCache в PHP5.5+ вам сначала придется включить его. Для этого вам придется сделать следующее.
добавить следующую строку
php.ini:zend_extension=/full/path/to/opcache.so (nix) zend_extension=C:\path\to\php_opcache.dll (win)обратите внимание, что если путь содержит пробелы, вы должны заключить его в кавычки:
zend_extension="C:\Program Files\PHP5.5\ext\php_opcache.dll"Также обратите внимание, что вы должны использовать
OPcache заменяет APC
поскольку OPcache предназначен для замены модуля APC, невозможно запустить их параллельно в PHP. Это отлично подходит для кэширования PHP-кода, поскольку ни один из них не влияет на то, как вы пишете код.
однако это означает, что если вы в настоящее время используете APC для хранения других данных (через
apc_store()функция) вы не сможете сделать это, если вы решите использовать OPCache.вам нужно будет использовать другую библиотеку, такую как либо APCu или Yac которые оба хранят данные в общей памяти PHP, или переключаются на использование чего-то вроде memcached, который хранит данные в памяти в отдельном процессе на PHP.
кроме того, OPcache не имеет эквивалента измерителя прогресса загрузки, присутствующего в APC. Вместо этого вы должны использовать Прогресс Загрузки Сеанса.
настройки для OPcache
документация для OPcache может быть найдена здесь все перечисленные параметры конфигурации здесь. Рекомендуемые настройки:
; Sets how much memory to use opcache.memory_consumption=128 ;Sets how much memory should be used by OPcache for storing internal strings ;(e.g. classnames and the files they are contained in) opcache.interned_strings_buffer=8 ; The maximum number of files OPcache will cache opcache.max_accelerated_files=4000 ;How often (in seconds) to check file timestamps for changes to the shared ;memory storage allocation. opcache.revalidate_freq=60 ;If enabled, a fast shutdown sequence is used for the accelerated code ;The fast shutdown sequence doesn't free each allocated block, but lets ;the Zend Engine Memory Manager do the work. opcache.fast_shutdown=1 ;Enables the OPcache for the CLI version of PHP. opcache.enable_cli=1если вы используете любую библиотеку или код, который использует аннотации кода, Вы должны включить сохранить комментарии:
opcache.save_comments=1если отключено, все комментарии PHPDoc удаляются из кода для уменьшения размер оптимизированного кода. Отключение "Doc комментарии" может сломаться некоторые существующие приложения и структуры (например, доктрина, ZF2, PHPUnit)
Я собираюсь бросить свои два цента за то, что я использую opcache.
Я сделал обширную структуру с большим количеством полей и методов проверки и перечислений, чтобы иметь возможность говорить с моей базой данных.
без opcache
при использовании этого скрипта без opcache и я нажимаю 9000 запросов за 2,8 секунды на сервер apache он работает на 90-100% cpu в течение 70-80 секунд, пока он не догонит все запросы.
Total time taken: 76085 milliseconds(76 seconds)С включенным opcache
С включенным opcache он работает на 25-30% процессорного времени в течение примерно 25 секунд и никогда не проходит 25% использования процессора.
Total time taken: 26490 milliseconds(26 seconds)Я сделал файл черного списка opcache, чтобы отключить кэширование всего, кроме фреймворка, который является статическим и не требует изменения функциональности. Я выбираю явно только для файлов фреймворка, чтобы я мог развиваться, не беспокоясь о перезагрузка / проверка файлов кэша. Имея все кэшируется экономит секунду на общее количество запросов
25546 millisecondsЭто значительно расширяет количество данных / запросов, которые я могу обрабатывать в секунду без того, чтобы сервер даже вспотел.
С PHP 5.6 на Amazon Linux (должно быть то же самое на RedHat или CentOS):
yum install php56-opcacheа затем перезапустите apache.
я столкнулся с этим при настройке moodle. Я добавил следующие строки в PHP.ini-файл.
zend_extension=C:\xampp\php\ext\php_opcache.dll [opcache] opcache.enable = 1 opcache.memory_consumption = 128 opcache.max_accelerated_files = 4000 opcache.revalidate_freq = 60 ; Required for Moodle opcache.use_cwd = 1 opcache.validate_timestamps = 1 opcache.save_comments = 1 opcache.enable_file_override = 0 ; If something does not work in Moodle ;opcache.revalidate_path = 1 ; May fix problems with include paths ;opcache.mmap_base = 0x20000000 ; (Windows only) fix OPcache crashes with event id 487 ; Experimental for Moodle 2.6 and later ;opcache.fast_shutdown = 1 ;opcache.enable_cli = 1 ; Speeds up CLI cron ;opcache.load_comments = 0 ; May lower memory use, might not be compatible with add-ons and other apps extension=C:\xampp\php\ext\php_intl.dll [intl] intl.default_locale = en_utf8 intl.error_level = E_WARNING
Comments