On 18/02/13 21:47, Brendon Colby wrote:
On Mon, Feb 18, 2013 at 4:32 PM, Damien Tournoud <d...@damz.org> wrote:
Assuming that those are relative includes, can you try with:
apc.canonicalize=0
apc.stat=0
Paths are absolute. stat=0 (and canonicalize=0 just to try it)
produced the same result.
Brendon
Brendon, are your scripts doing a log of include_once / require_once
calls? In you look at ZEND_INCLUDE_OR_EVAL_SPEC_CONST_HANDLER() in
Zend/zend_vm_execute.h then you will see that this Zend handler does
zend_resolve_path() for any xxx_ONCE instructions and zend_stream_open()
on the first request of the same. Yes APC rehooks this handler with a
wrapper but this is only for lazy loading. When it honors the xxx_once
instructions, it will still open the streams even if the code itself is
fully cached in APC and the I/O is entirely nugatory. I suspect that
this could generate the NFS traffic that you are discussing.
This would be easy to avoid, but this would require replacing this
handler entirely or doing dynamic code patching, nether of which APC
currently does, I believe. Incidentally because this is Zend feature
and nothing directly to with APC, O+ will also have this runtime
characteristic.
//Terry