Wincache扩展对IIS 7.5没有影响

时间:2015-08-26 18:28:03

标签: php iis cpu-usage wincache

在我的IIS 7.5网络服务器上,我运行PHP 5.6和wincache扩展(1.3.6.1)来缓存我的PHP脚本的操作码。这应该可以减少服务器上的CPU负载,因为每次请求进入时都不需要重新编译PHP脚本。

但是我没有看到CPU负载明显减少。有3个客户端,我的Web服务几乎达到最大限度(平均CPU利用率为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有任何影响的任何建议?我还可以尝试减少网络服务器上的CPU负载吗?

1 个答案:

答案 0 :(得分:1)

所以看起来好像PHP现在有一个内置的操作码缓存,即Zend Opcache。激活/配置而不是Wincache为我工作。我现在看到操作码的缓存有效,虽然它没有我预期的那么大。

从PHP 5.5开始,可以通过将以下行添加到php.ini来激活Zend Opcache扩展:

zend_extension=php_opcache.dll
[opcache]
opcache.enable=1

另请参阅此页面,了解如何配置/调整Zend操作码扩展程序:http://php.net/manual/en/book.opcache.php