|
Posted by Peter Wang on 11/25/07 13:57
Hi, all.
I recently encountered a very annoying problem while using Zend
Framework(ZF).
We use ZF in our web application, and it works fine at the
beginning, but later when concurrent requests goes high, we get very
high cpu load. when i trace the httpd using strace, i find so much
fstat64 syscalls, most of which failed, all these syscalls take more
than 60% of cpu usage. After i check our php code carefully, i find
all our require_once() was used with absolute-path, but require_once()
in ZF are all used with relative-path, so while a class in ZF was
used, php will search all directories in include_path, see if the
class file was exists and accessable. but most of them fails, utill
directory of zend framework was reached.
so how to stop php making so many meaningless tries. I guess
modified the zend framework make it do its require_once() with
absolute-path was not feasible.
another approach i guess is: use __autoload() to load classes when
it actually needed. but this also need to modify the Zend Framework.
any better advices? thank you.
Navigation:
[Reply to this message]
|