Настройки производительности Zend OPcache против настроек по умолчанию

Насколько я понимаю эти настройки:

opcache.validate_timestamps=0
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=3907
opcache.blacklist_filename=/blacklisted_files

следует повысить производительность (по ссылкам: 1, 2 а также 3). На самом деле я не уверен насчет последних 2, и в моем случае значение настройки «4» для internet_strings_buffer может никогда не быть заполнено (поэтому не дает лучших результатов), но «validate_timestamps» должно удалить служебную информацию stat () и, следовательно, дать мне лучше производительность, но согласно моим тестам с JMeter, я не могу это проверить. Каждая настройка отдельно хуже настроек по умолчанию.

Я понимаю, что «настройки производительности» могут не сильно улучшиться, но я думаю, что это не должно работать хуже (разница составляет около +2 мс для каждого запроса).

Вопрос: Почему настройки по умолчанию лучше, чем производительность / рекомендуемые настройки?

Кроме того, OPcache лучше обрабатывает перезапись / удаление / поиск памяти меньшего размера, чем больший (говоря об установке «opcache.memory_consumpence»)?

3

Решение

Варианты 2 и 3 только косвенно снижают производительность в том смысле, что они связаны с емкостью кэша кода операции. Если ваше текущее использование соответствует значениям по умолчанию, то вы не увидите никакой существенной разницы, кроме небольшого увеличения системных издержек при использовании Opcache. Конечно, вы получите выгоду, если текущее использование не подходит, потому что кэш будет иметь большую емкость, и вы будете получать меньше ошибок кеша.

Вариант 4 относится к определению шаблонов для имен файлов сценариев PHP, которые являются изменчивыми и поэтому не должны кэшироваться. Это особенно важно, если вы отключили проверку временных меток, так как Opcache не сможет зафиксировать такие изменения.

Вариант 1 удаляет дополнительные вызовы stat (), которые strace из процесса PHP можно проверить. В современных процессорах ядро ​​Linux довольно эффективно кэширует inode, так что это экономит только sub mSec. если узел находится в кеше VFAT. Вам нужно было бы построить тест синхронизации очень хорошо, чтобы измерить эту разницу.

У Opcache очень плохая стратегия повторного использования: она не беспокоит. Кэш-память медленно заполняется, а когда она заполнена, она полностью очищается и восстанавливается с нуля.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]