Hi,
I'm currently testing opcache for php 5.5.12 on linux and windows. Both
platforms are used in conjunction with apache 2.2 and mod_fcgid + php-fcgi.
On linux opcache seems to work just fine, but on windows (Windows Server
2008, php NTS, VC11 binary) it does not seem to work.
If I dump the settings I get:
Array
(
[directives] => Array
(
[opcache.enable] => 1
[opcache.enable_cli] =>
[opcache.use_cwd] => 1
[opcache.validate_timestamps] => 1
[opcache.inherited_hack] => 1
[opcache.dups_fix] =>
[opcache.revalidate_path] =>
[opcache.log_verbosity_level] => 4
[opcache.memory_consumption] => 67108864
[opcache.interned_strings_buffer] => 8
[opcache.max_accelerated_files] => 20000
[opcache.max_wasted_percentage] => 0.05
[opcache.consistency_checks] => 0
[opcache.force_restart_timeout] => 180
[opcache.revalidate_freq] => 2
[opcache.preferred_memory_model] =>
[opcache.blacklist_filename] =>
[opcache.max_file_size] => 0
[opcache.error_log] =>
[opcache.protect_memory] =>
[opcache.save_comments] => 1
[opcache.load_comments] => 1
[opcache.fast_shutdown] => 1
[opcache.enable_file_override] =>
[opcache.optimization_level] => 2147483647
)
[version] => Array
(
[version] => 7.0.4-dev
[opcache_product_name] => Zend OPcache
)
[blacklist] => Array
(
)
)
But dumping the status shows that the cache is not enabled:
Array
(
[opcache_enabled] =>
[cache_full] => 1
[restart_pending] => 1
[restart_in_progress] =>
[memory_usage] => Array
(
[used_memory] => 63439832
[free_memory] => 48
[wasted_memory] => 3668984
[current_wasted_percentage] => 5.4672122001648
)
[interned_strings_usage] => Array
(
[buffer_size] => 4194304
[used_memory] => 2549912
[free_memory] => 1644392
[number_of_strings] => 83780
)
[opcache_statistics] => Array
(
[num_cached_scripts] => 328
[num_cached_keys] => 700
[max_cached_keys] => 32531
[hits] => 221276
[start_time] => 1397470295
[last_restart_time] => 1397480294
[oom_restarts] => 1
[hash_restarts] => 0
[manual_restarts] => 0
[misses] => 3071052
[blacklist_misses] => 0
[blacklist_miss_ratio] => 0
[opcache_hit_rate] => 6.7209585436202
)
)
The phpinfo page also shows all opcache settings and lists "Opcode
Caching" as "Disabled".
Maybe I'm overseeing something here.
Any hints on what could be wrong?
Greetings
Nico
Which web server and PHP build are you using on Windows?
With Apache on Windows, you should be using the TS build of PHP. You said
you were using the NTS build, which is what you'd use with IIS.
Also, try setting enable_cli=1
On Thu, May 15, 2014 at 6:15 AM, Nicolai Scheer nicolai.scheer@gmail.comwrote:
Hi,
I'm currently testing opcache for php 5.5.12 on linux and windows. Both
platforms are used in conjunction with apache 2.2 and mod_fcgid + php-fcgi.On linux opcache seems to work just fine, but on windows (Windows Server
2008, php NTS, VC11 binary) it does not seem to work.If I dump the settings I get:
Array
(
[directives] => Array
(
[opcache.enable] => 1
[opcache.enable_cli] =>
[opcache.use_cwd] => 1
[opcache.validate_timestamps] => 1
[opcache.inherited_hack] => 1
[opcache.dups_fix] =>
[opcache.revalidate_path] =>
[opcache.log_verbosity_level] => 4
[opcache.memory_consumption] => 67108864
[opcache.interned_strings_buffer] => 8
[opcache.max_accelerated_files] => 20000
[opcache.max_wasted_percentage] => 0.05
[opcache.consistency_checks] => 0
[opcache.force_restart_timeout] => 180
[opcache.revalidate_freq] => 2
[opcache.preferred_memory_model] =>
[opcache.blacklist_filename] =>
[opcache.max_file_size] => 0
[opcache.error_log] =>
[opcache.protect_memory] =>
[opcache.save_comments] => 1
[opcache.load_comments] => 1
[opcache.fast_shutdown] => 1
[opcache.enable_file_override] =>
[opcache.optimization_level] => 2147483647
)[version] => Array ( [version] => 7.0.4-dev [opcache_product_name] => Zend OPcache ) [blacklist] => Array ( )
)
But dumping the status shows that the cache is not enabled:
Array
(
[opcache_enabled] =>
[cache_full] => 1
[restart_pending] => 1
[restart_in_progress] =>
[memory_usage] => Array
(
[used_memory] => 63439832
[free_memory] => 48
[wasted_memory] => 3668984
[current_wasted_percentage] => 5.4672122001648
)[interned_strings_usage] => Array ( [buffer_size] => 4194304 [used_memory] => 2549912 [free_memory] => 1644392 [number_of_strings] => 83780 ) [opcache_statistics] => Array ( [num_cached_scripts] => 328 [num_cached_keys] => 700 [max_cached_keys] => 32531 [hits] => 221276 [start_time] => 1397470295 [last_restart_time] => 1397480294 [oom_restarts] => 1 [hash_restarts] => 0 [manual_restarts] => 0 [misses] => 3071052 [blacklist_misses] => 0 [blacklist_miss_ratio] => 0 [opcache_hit_rate] => 6.7209585436202 )
)
The phpinfo page also shows all opcache settings and lists "Opcode
Caching" as "Disabled".Maybe I'm overseeing something here.
Any hints on what could be wrong?
Greetings
Nico
Hi,
He's using fcgi on windows too so NTS is more than fine
2014-05-15 20:20 GMT+02:00 Matt Ficken themattficken@gmail.com:
Which web server and PHP build are you using on Windows?
With Apache on Windows, you should be using the TS build of PHP. You said
you were using the NTS build, which is what you'd use with IIS.Also, try setting
enable_cli=1
On Thu, May 15, 2014 at 6:15 AM, Nicolai Scheer <nicolai.scheer@gmail.com
wrote:
Hi,
I'm currently testing opcache for php 5.5.12 on linux and windows. Both
platforms are used in conjunction with apache 2.2 and mod_fcgid +
php-fcgi.On linux opcache seems to work just fine, but on windows (Windows Server
2008, php NTS, VC11 binary) it does not seem to work.If I dump the settings I get:
Array
(
[directives] => Array
(
[opcache.enable] => 1
[opcache.enable_cli] =>
[opcache.use_cwd] => 1
[opcache.validate_timestamps] => 1
[opcache.inherited_hack] => 1
[opcache.dups_fix] =>
[opcache.revalidate_path] =>
[opcache.log_verbosity_level] => 4
[opcache.memory_consumption] => 67108864
[opcache.interned_strings_buffer] => 8
[opcache.max_accelerated_files] => 20000
[opcache.max_wasted_percentage] => 0.05
[opcache.consistency_checks] => 0
[opcache.force_restart_timeout] => 180
[opcache.revalidate_freq] => 2
[opcache.preferred_memory_model] =>
[opcache.blacklist_filename] =>
[opcache.max_file_size] => 0
[opcache.error_log] =>
[opcache.protect_memory] =>
[opcache.save_comments] => 1
[opcache.load_comments] => 1
[opcache.fast_shutdown] => 1
[opcache.enable_file_override] =>
[opcache.optimization_level] => 2147483647
)[version] => Array ( [version] => 7.0.4-dev [opcache_product_name] => Zend OPcache ) [blacklist] => Array ( )
)
But dumping the status shows that the cache is not enabled:
Array
(
[opcache_enabled] =>
[cache_full] => 1
[restart_pending] => 1
[restart_in_progress] =>
[memory_usage] => Array
(
[used_memory] => 63439832
[free_memory] => 48
[wasted_memory] => 3668984
[current_wasted_percentage] => 5.4672122001648
)[interned_strings_usage] => Array ( [buffer_size] => 4194304 [used_memory] => 2549912 [free_memory] => 1644392 [number_of_strings] => 83780 ) [opcache_statistics] => Array ( [num_cached_scripts] => 328 [num_cached_keys] => 700 [max_cached_keys] => 32531 [hits] => 221276 [start_time] => 1397470295 [last_restart_time] => 1397480294 [oom_restarts] => 1 [hash_restarts] => 0 [manual_restarts] => 0 [misses] => 3071052 [blacklist_misses] => 0 [blacklist_miss_ratio] => 0 [opcache_hit_rate] => 6.7209585436202 )
)
The phpinfo page also shows all opcache settings and lists "Opcode
Caching" as "Disabled".Maybe I'm overseeing something here.
Any hints on what could be wrong?
Greetings
Nico
Hi,
thanks for your quick response.
I'm using apache 2.2.32 (win32) with mod_fcgid 2.3.7. On top of that I'm
using stock PHP-5.5.11 (wrong version in my last mail) NTS VC11 as fastcgi.
I enabled opcache for cli, and the same script seems to work when run from
command line:
Array
(
[directives] => Array
(
[opcache.enable] => 1
[opcache.enable_cli] => 1
[opcache.use_cwd] => 1
[opcache.validate_timestamps] => 1
[opcache.inherited_hack] => 1
[opcache.dups_fix] =>
[opcache.revalidate_path] =>
[opcache.log_verbosity_level] => 4
[opcache.memory_consumption] => 67108864
[opcache.interned_strings_buffer] => 8
[opcache.max_accelerated_files] => 20000
[opcache.max_wasted_percentage] => 0.05
[opcache.consistency_checks] => 0
[opcache.force_restart_timeout] => 180
[opcache.revalidate_freq] => 2
[opcache.preferred_memory_model] =>
[opcache.blacklist_filename] =>
[opcache.max_file_size] => 0
[opcache.error_log] =>
X:\users\common\var\log\php\php_opcache_errors.log
[opcache.protect_memory] =>
[opcache.save_comments] => 1
[opcache.load_comments] => 1
[opcache.fast_shutdown] => 1
[opcache.enable_file_override] =>
[opcache.optimization_level] => 2147483647
)
[version] => Array
(
[version] => 7.0.4-dev
[opcache_product_name] => Zend OPcache
)
[blacklist] => Array
(
)
)
Array
(
[opcache_enabled] => 1
[cache_full] =>
[restart_pending] =>
[restart_in_progress] =>
[memory_usage] => Array
(
[used_memory] => 18008464
[free_memory] => 49100400
[wasted_memory] => 0
[current_wasted_percentage] => 0
)
[interned_strings_usage] => Array
(
[buffer_size] => 8388608
[used_memory] => 373344
[free_memory] => 8015264
[number_of_strings] => 6652
)
[opcache_statistics] => Array
(
[num_cached_scripts] => 2
[num_cached_keys] => 3
[max_cached_keys] => 32531
[hits] => 0
[start_time] => 1400226468
[last_restart_time] => 0
[oom_restarts] => 0
[hash_restarts] => 0
[manual_restarts] => 0
[misses] => 2
[blacklist_misses] => 0
[blacklist_miss_ratio] => 0
[opcache_hit_rate] => 0
)
[scripts] => Array
(
[X:\users\scheer.nicolai\htdocs\branches\opcode\object.class.inc.php] =>
Array
(
[full_path] =>
X:\users\scheer.nicolai\htdocs\branches\opcode\object.class.inc.php
[hits] => 0
[memory_consumption] => 6608256
[last_used] => Fri May 16 09:47:48 2014
[last_used_timestamp] => 1400226468
[timestamp] => 1400154713
)
[X:\users\scheer.nicolai\htdocs\branches\opcode\opcode.php] =>
Array
(
[full_path] =>
X:\users\scheer.nicolai\htdocs\branches\gemse_current_release\htdocs\wwwroot__test\opcode\opcode.php
[hits] => 0
[memory_consumption] => 1832
[last_used] => Fri May 16 09:47:48 2014
[last_used_timestamp] => 1400226468
[timestamp] => 1400166861
)
)
)
Here, "opcache_enabled" from the status is 1 and obviously my test class
gets cached. Of course I need opcache support for the web...
To my mind, using fastcgi, the web server should not play any role in that
problem, but I might be wrong here.
Greetings
Nico
Which web server and PHP build are you using on Windows?
With Apache on Windows, you should be using the TS build of PHP. You said
you were using the NTS build, which is what you'd use with IIS.Also, try setting
enable_cli=1
On Thu, May 15, 2014 at 6:15 AM, Nicolai Scheer nicolai.scheer@gmail.comwrote:
Hi,
I'm currently testing opcache for php 5.5.12 on linux and windows. Both
platforms are used in conjunction with apache 2.2 and mod_fcgid +
php-fcgi.On linux opcache seems to work just fine, but on windows (Windows Server
2008, php NTS, VC11 binary) it does not seem to work.If I dump the settings I get:
Array
(
[directives] => Array
(
[opcache.enable] => 1
[opcache.enable_cli] =>
[opcache.use_cwd] => 1
[opcache.validate_timestamps] => 1
[opcache.inherited_hack] => 1
[opcache.dups_fix] =>
[opcache.revalidate_path] =>
[opcache.log_verbosity_level] => 4
[opcache.memory_consumption] => 67108864
[opcache.interned_strings_buffer] => 8
[opcache.max_accelerated_files] => 20000
[opcache.max_wasted_percentage] => 0.05
[opcache.consistency_checks] => 0
[opcache.force_restart_timeout] => 180
[opcache.revalidate_freq] => 2
[opcache.preferred_memory_model] =>
[opcache.blacklist_filename] =>
[opcache.max_file_size] => 0
[opcache.error_log] =>
[opcache.protect_memory] =>
[opcache.save_comments] => 1
[opcache.load_comments] => 1
[opcache.fast_shutdown] => 1
[opcache.enable_file_override] =>
[opcache.optimization_level] => 2147483647
)[version] => Array ( [version] => 7.0.4-dev [opcache_product_name] => Zend OPcache ) [blacklist] => Array ( )
)
But dumping the status shows that the cache is not enabled:
Array
(
[opcache_enabled] =>
[cache_full] => 1
[restart_pending] => 1
[restart_in_progress] =>
[memory_usage] => Array
(
[used_memory] => 63439832
[free_memory] => 48
[wasted_memory] => 3668984
[current_wasted_percentage] => 5.4672122001648
)[interned_strings_usage] => Array ( [buffer_size] => 4194304 [used_memory] => 2549912 [free_memory] => 1644392 [number_of_strings] => 83780 ) [opcache_statistics] => Array ( [num_cached_scripts] => 328 [num_cached_keys] => 700 [max_cached_keys] => 32531 [hits] => 221276 [start_time] => 1397470295 [last_restart_time] => 1397480294 [oom_restarts] => 1 [hash_restarts] => 0 [manual_restarts] => 0 [misses] => 3071052 [blacklist_misses] => 0 [blacklist_miss_ratio] => 0 [opcache_hit_rate] => 6.7209585436202 )
)
The phpinfo page also shows all opcache settings and lists "Opcode
Caching" as "Disabled".Maybe I'm overseeing something here.
Any hints on what could be wrong?
Greetings
Nico
Hi again,
seems that I've narrowed it down a bit.
Since fastcgi should just run php-cgi.exe I tried to run php-cgi.exe myself
from the command line.
So I fetched myself the phpinfo stuff in two ways:
php.exe -i > cli.txt
php-cgi.exe -i > cgi.htm
Both files report the opcache as "Up and running". Since apache runs as
local system account it might have something to do with not being able to
create the shared memory realm? But usually the local system account is as
powerful as it gets... I'll try to run it as a different user...
Greetings
Nico
Hi,
thanks for your quick response.
I'm using apache 2.2.32 (win32) with mod_fcgid 2.3.7. On top of that I'm
using stock PHP-5.5.11 (wrong version in my last mail) NTS VC11 as fastcgi.I enabled opcache for cli, and the same script seems to work when run from
command line:Array
(
[directives] => Array
(
[opcache.enable] => 1
[opcache.enable_cli] => 1[opcache.use_cwd] => 1 [opcache.validate_timestamps] => 1 [opcache.inherited_hack] => 1 [opcache.dups_fix] => [opcache.revalidate_path] => [opcache.log_verbosity_level] => 4 [opcache.memory_consumption] => 67108864 [opcache.interned_strings_buffer] => 8 [opcache.max_accelerated_files] => 20000 [opcache.max_wasted_percentage] => 0.05 [opcache.consistency_checks] => 0 [opcache.force_restart_timeout] => 180 [opcache.revalidate_freq] => 2 [opcache.preferred_memory_model] => [opcache.blacklist_filename] => [opcache.max_file_size] => 0 [opcache.error_log] =>
X:\users\common\var\log\php\php_opcache_errors.log
[opcache.protect_memory] => [opcache.save_comments] => 1 [opcache.load_comments] => 1 [opcache.fast_shutdown] => 1 [opcache.enable_file_override] => [opcache.optimization_level] => 2147483647 ) [version] => Array ( [version] => 7.0.4-dev [opcache_product_name] => Zend OPcache ) [blacklist] => Array ( )
)
Array
(
[opcache_enabled] => 1
[cache_full] =>
[restart_pending] =>[restart_in_progress] => [memory_usage] => Array ( [used_memory] => 18008464 [free_memory] => 49100400 [wasted_memory] => 0 [current_wasted_percentage] => 0 ) [interned_strings_usage] => Array ( [buffer_size] => 8388608 [used_memory] => 373344 [free_memory] => 8015264 [number_of_strings] => 6652 ) [opcache_statistics] => Array ( [num_cached_scripts] => 2 [num_cached_keys] => 3 [max_cached_keys] => 32531 [hits] => 0 [start_time] => 1400226468 [last_restart_time] => 0 [oom_restarts] => 0 [hash_restarts] => 0 [manual_restarts] => 0 [misses] => 2 [blacklist_misses] => 0 [blacklist_miss_ratio] => 0 [opcache_hit_rate] => 0 ) [scripts] => Array (
[X:\users\scheer.nicolai\htdocs\branches\opcode\object.class.inc.php] =>
Array
(
[full_path] =>
X:\users\scheer.nicolai\htdocs\branches\opcode\object.class.inc.php
[hits] => 0
[memory_consumption] => 6608256
[last_used] => Fri May 16 09:47:48 2014
[last_used_timestamp] => 1400226468
[timestamp] => 1400154713
)[X:\users\scheer.nicolai\htdocs\branches\opcode\opcode.php] =>
Array
(
[full_path] =>
X:\users\scheer.nicolai\htdocs\branches\gemse_current_release\htdocs\wwwroot__test\opcode\opcode.php
[hits] => 0
[memory_consumption] => 1832
[last_used] => Fri May 16 09:47:48 2014
[last_used_timestamp] => 1400226468
[timestamp] => 1400166861
))
)
Here, "opcache_enabled" from the status is 1 and obviously my test class
gets cached. Of course I need opcache support for the web...To my mind, using fastcgi, the web server should not play any role in that
problem, but I might be wrong here.Greetings
Nico
Which web server and PHP build are you using on Windows?
With Apache on Windows, you should be using the TS build of PHP. You said
you were using the NTS build, which is what you'd use with IIS.Also, try setting
enable_cli=1
On Thu, May 15, 2014 at 6:15 AM, Nicolai Scheer <nicolai.scheer@gmail.com
wrote:
Hi,
I'm currently testing opcache for php 5.5.12 on linux and windows. Both
platforms are used in conjunction with apache 2.2 and mod_fcgid +
php-fcgi.On linux opcache seems to work just fine, but on windows (Windows Server
2008, php NTS, VC11 binary) it does not seem to work.If I dump the settings I get:
Array
(
[directives] => Array
(
[opcache.enable] => 1
[opcache.enable_cli] =>
[opcache.use_cwd] => 1
[opcache.validate_timestamps] => 1
[opcache.inherited_hack] => 1
[opcache.dups_fix] =>
[opcache.revalidate_path] =>
[opcache.log_verbosity_level] => 4
[opcache.memory_consumption] => 67108864
[opcache.interned_strings_buffer] => 8
[opcache.max_accelerated_files] => 20000
[opcache.max_wasted_percentage] => 0.05
[opcache.consistency_checks] => 0
[opcache.force_restart_timeout] => 180
[opcache.revalidate_freq] => 2
[opcache.preferred_memory_model] =>
[opcache.blacklist_filename] =>
[opcache.max_file_size] => 0
[opcache.error_log] =>
[opcache.protect_memory] =>
[opcache.save_comments] => 1
[opcache.load_comments] => 1
[opcache.fast_shutdown] => 1
[opcache.enable_file_override] =>
[opcache.optimization_level] => 2147483647
)[version] => Array ( [version] => 7.0.4-dev [opcache_product_name] => Zend OPcache ) [blacklist] => Array ( )
)
But dumping the status shows that the cache is not enabled:
Array
(
[opcache_enabled] =>
[cache_full] => 1
[restart_pending] => 1
[restart_in_progress] =>
[memory_usage] => Array
(
[used_memory] => 63439832
[free_memory] => 48
[wasted_memory] => 3668984
[current_wasted_percentage] => 5.4672122001648
)[interned_strings_usage] => Array ( [buffer_size] => 4194304 [used_memory] => 2549912 [free_memory] => 1644392 [number_of_strings] => 83780 ) [opcache_statistics] => Array ( [num_cached_scripts] => 328 [num_cached_keys] => 700 [max_cached_keys] => 32531 [hits] => 221276 [start_time] => 1397470295 [last_restart_time] => 1397480294 [oom_restarts] => 1 [hash_restarts] => 0 [manual_restarts] => 0 [misses] => 3071052 [blacklist_misses] => 0 [blacklist_miss_ratio] => 0 [opcache_hit_rate] => 6.7209585436202 )
)
The phpinfo page also shows all opcache settings and lists "Opcode
Caching" as "Disabled".Maybe I'm overseeing something here.
Any hints on what could be wrong?
Greetings
Nico
Hi again,
Hi again,
seems that I've narrowed it down a bit.
Since fastcgi should just run php-cgi.exe I tried to run php-cgi.exe
myself from the command line.So I fetched myself the phpinfo stuff in two ways:
php.exe -i > cli.txt
php-cgi.exe -i > cgi.htmBoth files report the opcache as "Up and running". Since apache runs as
local system account it might have something to do with not being able to
create the shared memory realm? But usually the local system account is as
powerful as it gets... I'll try to run it as a different user...Greetings
Nico
opcache runs fine when apache service is started as a local admin user. It
does not work when running as local system account.
Still no idea why there is a difference... Any suggestions appreciated...
Thanks and greetings
Nico
On Fri, May 16, 2014 at 10:45 AM, Nicolai Scheer
nicolai.scheer@gmail.com wrote:
Hi again,
Hi again,
seems that I've narrowed it down a bit.
Since fastcgi should just run php-cgi.exe I tried to run php-cgi.exe
myself from the command line.So I fetched myself the phpinfo stuff in two ways:
php.exe -i > cli.txt
php-cgi.exe -i > cgi.htmBoth files report the opcache as "Up and running". Since apache runs as
local system account it might have something to do with not being able to
create the shared memory realm? But usually the local system account is as
powerful as it gets... I'll try to run it as a different user...Greetings
Nico
opcache runs fine when apache service is started as a local admin user. It
does not work when running as local system account.Still no idea why there is a difference... Any suggestions appreciated...
It tells me that your local user does not have the permission to
create the necessary mapped file.
Cheers,
Pierre
@pierrejoye | http://www.libgd.org
Hi Pierre,
On Fri, May 16, 2014 at 10:45 AM, Nicolai Scheer
nicolai.scheer@gmail.com wrote:Hi again,
Hi again,
seems that I've narrowed it down a bit.
Since fastcgi should just run php-cgi.exe I tried to run php-cgi.exe
myself from the command line.So I fetched myself the phpinfo stuff in two ways:
php.exe -i > cli.txt
php-cgi.exe -i > cgi.htmBoth files report the opcache as "Up and running". Since apache runs as
local system account it might have something to do with not being able
to
create the shared memory realm? But usually the local system account is
as
powerful as it gets... I'll try to run it as a different user...Greetings
Nico
opcache runs fine when apache service is started as a local admin user.
It
does not work when running as local system account.Still no idea why there is a difference... Any suggestions appreciated...
It tells me that your local user does not have the permission to
create the necessary mapped file.
Well, it works with a local admin user. It does not work when running the
service as local system account (i.e. local system account selected for
"log on as").
I don't see why the local system account (which usually can do just
anything) should not be able to create the mapped file...
Greetings
Nico