Подтвердить что ты не робот

APC → APCu/OPCache, производительность низкая

У меня есть экземпляр m3.xlarge EC2, который я обновил до PHP 5.5.11 сегодня.

С этим обновлением он перезаписал php55-pecl-apc с помощью php55-pecl-apcu.

После чтения и экспериментирования я понимаю, что APC был заменен на OPCache, за исключением хранилища значений ключей, которое можно вернуть с помощью APCu.

После настройки моей конфигурации на то, что выглядит разумно, использование Wordpress во время входа в систему теперь ужасно медленное, по крайней мере на 300-900 м хуже (передний конец кэшируется через лак и отлично работает... но когда вы используете администратор умышленно не кэшируется, а медленный, как грех).

Я выполнил ряд тестов, когда обновлялся, с небольшим размером выборки для каждого шага. Он ухудшался все хуже и хуже, когда я продолжал.

  • APC (до обновления) -->
  • OPCache + нет APCu -->
  • OPCache + APCu + WP Plugin для APCu

Сейчас я просто болтаюсь с OPCache и не APCu.

  • Как я могу достичь такой же производительности? Мне понравился интерфейс администратора, мне понравилось, как быстро это было. Я, честно говоря, не вижу, как это вообще улучшается, это довольно удручающе... если нет какой-то супер-библиотеки, о которой я не знаю. Это, конечно, не то, что у меня есть, или, может быть, оно плохо настроено.
  • Предполагая, что ответ на # 1 - "вы настроили его как шары", тогда не могли бы вы взглянуть на это и посмотреть, разумно ли это?

Для моей установки я использую последний 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
4b9b3361

Ответ 1

В настоящий момент вы проверяете каждый файл при каждом запросе изменений, который, вероятно, не является тем, что вы хотите в производственной системе.

Я обычно просто отключил его (не забудьте перезапустить веб-сервер после внесения изменений):

opcache.validate_timestamps=0

В качестве альтернативы вы можете попробовать установить частоту на что-то отличное от 0 и сохранить ее включенным:

opcache.validate_timestamps=1  
opcache.revalidate_freq=300

Это должно теоретически проверять изменения каждые 5 минут.

Ответ 2

У вас также есть

opcache.consistency_checks=1

Что в соответствии с документами говорит о замедлении производительности. Отключите это.

opcache.consistency_checks integer

Если ненулевой, OPcache проверяет контрольную сумму кеша на каждый N запросов, где N - это значение этой директивы конфигурации. Это должно быть включено только при отладке, поскольку это будет ухудшать производительность.

Ответ 3

Из RFC, который отвечал за включение OPCache в PHP:

APC может восстановить память старых недействительных скриптов. APC использует диспетчер памяти и может вернуть память, связанную с script, которая больше не используется; Оптимизатор + работает по-разному и отмечает такую ​​память как "грязную", но на самом деле ее не восстанавливает. Как только грязный процент поднимается выше настраиваемого порога - Optimizer + перезапускает себя. Обратите внимание, что это поведение имеет как преимущества стабильности, так и недостатки.

Я предполагаю, что вы нажимаете на порог, который запускает перезапуск кэша операций.

Ссылка: https://wiki.php.net/rfc/optimizerplus#advantages_of_apc_over_optimizer