I am struggling with the performance of some websites that use a lot of
includes (using include_once). The files are on a NFS mount (NFSv4), and
I use APC to speed things up. APC has enough memory, and I see all
included files are in the APC cache. apc.include_once_override is
enabled. This is on a Ubuntu Linux 10.04 server.

What surprises me is that using strace I see apache open()ing all
included files. I would think this is not necessary as APC has these
files in its cache. Opening a file takes 1-3 ms, the websites include
100-200 files, so this costs about half a second for each request. I
tried a lot to prevent this but my options are exhausted. Is it normal
that all these files are open()ed each time, and if so how can I speed
up these includes?

Part of the trace is below, look especially at the first line where 2ms
are lost while this file is in the APC cache:

open("/[removed]/library/Zend/Application.php", O_RDONLY) = 1440 <0.002035>
fstat(1440, {st_mode=S_IFREG|0755, st_size=11365, ...}) = 0 <0.000137>
fstat(1440, {st_mode=S_IFREG|0755, st_size=11365, ...}) = 0 <0.000124>
fstat(1440, {st_mode=S_IFREG|0755, st_size=11365, ...}) = 0 <0.000133>
mmap(NULL, 11365, PROT_READ, MAP_SHARED, 1440, 0) = 0x7faf3f068000
stat("/[removed]/library/Zend/Application.php", {st_mode=S_IFREG|0755,
st_size=11365, ...}) = 0 <0.000219>
munmap(0x7faf3f068000, 11365)           = 0 <0.000151>
close(1440)                             = 0 <0.000845>


PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to