On Mon, Feb 18, 2013 at 7:10 PM, Terry Ellison <[email protected]> wrote:
>
> Brendon, are your scripts doing a log of include_once / require_once calls?
Yep, but we also changed our autoload script (auto_prepend_file) to
use require instead of require_once, and we still saw the same
behavior (open calls for the PHP files required by the
auto_prepend_file same as before).
> 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.
Yes if the streams are opened whether cached or not, then this will
result in an automatic getattr request to the NFS server which is
exactly what we're seeing.
Brendon