Расширение Wincache не влияет на IIS 7.5
На моем веб-сервере IIS 7.5 я запускаю PHP 5.6 вместе с расширением wincache (1.3.6.1) для кэширования кода операции моих PHP-скриптов. Предполагается, что это уменьшит нагрузку на процессор сервера, потому что PHP-скрипты не нужно перекомпилировать каждый раз, когда поступает запрос.
Однако я не вижу, чтобы загрузка процессора заметно уменьшалась. С 3 клиентами мой веб-сервис практически исчерпан (в среднем загрузка процессора составляет 80 %), и это столько же, сколько и без wincache.
Вот соответствующий раздел из php.ini
[PHP_WINCACHE]
extension=php_wincache.dll
; Full reference: http://php.net/manual/en/wincache.configuration.php
wincache.fcenabled = 0
wincache.ocenabled = 1
wincache.ucenabled = 0
wincache.fcachesize = 64
wincache.fcndetect = 0
wincache.maxfilesize = 256
wincache.chkinterval = 10
wincache.enablecli = 0
Мне пришлось отключить кэширование файлов из-за этого: https://serverfault.com/questions/643458/failure-in-php-minit-functionwincache-with-wordpress-microsoft-azure-and-iis
print_r(wincache_ocache_fileinfo())
печатает это:
Array
(
[total_cache_uptime] => 303
[is_local_cache] => 1
[total_file_count] => 42
[total_hit_count] => 32160
[total_miss_count] => 42
[file_entries] => Array
... (skipped precise file info for brevity)
И print_r(wincache_ocache_meminfo())
дает мне это:
Array
(
[memory_total] => 100663296
[memory_free] => 99769616
[num_used_blks] => 1677
[num_free_blks] => 1
[memory_overhead] => 26880
)
Есть какие-либо предложения о том, почему я не вижу, чтобы wincache оказывал какое-либо влияние? Что еще я могу попытаться уменьшить нагрузку на процессор на моем веб-сервере?
1 answers
Таким образом, похоже, что в PHP теперь есть встроенный кэш кода операции, Zend Opcache. Активация/настройка этого вместо Wincache сработала для меня. Теперь я вижу, что кэширование кода операции оказывает влияние, хотя оно не такое большое, как я ожидал.
Начиная с PHP 5.5, можно активировать расширение Zend Opcache, добавив следующие строки в php.ini
:
zend_extension=php_opcache.dll
[opcache]
opcache.enable=1
Также смотрите эту страницу о том, как настроить/настроить расширение кода операции Zend: http://php.net/manual/en/book.opcache.php