У меня есть экземпляр m3.xlarge
EC2, который я обновил до PHP 5.5.11
сегодня.
С этим обновлением он перезаписал php55-pecl-apc
с php55-pecl-apcu
.
После чтения и экспериментирования я понимаю, что APC
был заменен OPCache
, за исключением хранилища ключевых значений, которое можно вернуть с помощью APCu
.
После настройки моей конфигурации на то, что выглядит разумно, использование WordPress во время входа в систему сейчас ужасно медленное, по крайней мере на 300-900 м хуже (передний конец кэшируется через лак и отлично работает … но когда вы используете администратора, сознательно не кэшируется и не замедляется, как грех).
Я выполнил ряд тестов, когда обновлялся, с небольшим размером выборки для каждого шага. Когда я продолжал, он ухудшался все хуже и хуже.
-->
-->
Прямо сейчас я просто болтаюсь с OPCache, и нет APCu.
Для моей настройки я использую последний wordpress, несколько больших плагинов, но я не могу их снять, потому что они важны. К счастью, лак заботится о большей части работы. У меня 4 ядра, 16 ГБ памяти, ~ 10 тыс. Файлов в корне моего сайта. У меня также нет настоящих хардкорных приложений или чего-то другого, кроме WordPress, это довольно ванильная настройка. Я думаю, это все, что может помочь.
Config:
zend_extension=opcache.so opcache.enable=1 opcache.enable_cli=0 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.max_wasted_percentage=5 opcache.use_cwd=1 opcache.validate_timestamps=1 opcache.revalidate_freq=0 opcache.revalidate_path=0 opcache.save_comments=0 opcache.load_comments=0 opcache.fast_shutdown=1 opcache.enable_file_override=0 opcache.optimization_level=0xffffffff opcache.inherited_hack=1 opcache.dups_fix=0 opcache.blacklist_filename=/etc/php-5.5.d/opcache*.blacklist opcache.max_file_size=2M opcache.consistency_checks=1 opcache.force_restart_timeout=180 opcache.error_log=/var/log/php-fpm/5.5/opcache.log opcache.log_verbosity_level=1 opcache.preferred_memory_model= opcache.protect_memory=0
иzend_extension=opcache.so opcache.enable=1 opcache.enable_cli=0 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.max_wasted_percentage=5 opcache.use_cwd=1 opcache.validate_timestamps=1 opcache.revalidate_freq=0 opcache.revalidate_path=0 opcache.save_comments=0 opcache.load_comments=0 opcache.fast_shutdown=1 opcache.enable_file_override=0 opcache.optimization_level=0xffffffff opcache.inherited_hack=1 opcache.dups_fix=0 opcache.blacklist_filename=/etc/php-5.5.d/opcache*.blacklist opcache.max_file_size=2M opcache.consistency_checks=1 opcache.force_restart_timeout=180 opcache.error_log=/var/log/php-fpm/5.5/opcache.log opcache.log_verbosity_level=1 opcache.preferred_memory_model= opcache.protect_memory=0
Прямо сейчас вы проверяете каждый файл при каждом запросе изменений, который, вероятно, не является тем, что вы хотите в производственной системе.
Я обычно просто отключил его (не забудьте перезапустить веб-сервер после внесения изменений):
opcache.validate_timestamps=0
Кроме того, вы можете попробовать установить частоту на что-то отличное от 0 и сохранить ее включенным:
opcache.validate_timestamps=1 opcache.revalidate_freq=300
Это должно теоретически проверять изменения каждые 5 минут.
У вас также есть
opcache.consistency_checks=1
Который согласно сказанным документам замедляет производительность. Отключите это.
opcache.consistency_checks integer
Если ненулевое значение, OPcache проверяет контрольную сумму кеша каждые N запросов, где N – значение этой директивы конфигурации. Это должно быть включено только при отладке, так как это ухудшит производительность.
Из RFC, который отвечал за включение OPCache в PHP:
APC может восстановить память старых недействительных скриптов. APC использует диспетчер памяти и может вернуть память, связанную со сценарием, который больше не используется; Оптимизатор + работает по-разному и отмечает такую память как «грязную», но на самом деле не восстанавливает ее. Как только грязный процент поднимается выше настраиваемого порога – Optimizer + перезапускает себя. Обратите внимание, что это поведение имеет как преимущества стабильности, так и недостатки.
Я предполагаю, что вы нажимаете на порог, который запускает перезапуск кэша кода операции.
Ссылка: https://wiki.php.net/rfc/optimizerplus#advantages_of_apc_over_optimizer