APC 已启用但 Apache 仍在打开文件?
我正在开发一个高流量的网络服务器场,提供动态 PHP 代码,其中大多数请求包含大约 100 个文件。 APC 操作码缓存已启用,include_once_override 已启用,并且我已为缓存分配了 64MB ram,但是当我 strace apache 进程时,我仍然看到它对每个请求进行 open()ing 和 stat()ing 所有这些包含操作,这应该是从缓存中拉出。 我可以在缓存统计信息中看到缓存正在以 100% 的命中率填充和使用。 任何人都可以提供任何见解吗?
I'm working on a high-traffic webserver farm serving dynamic PHP code which includes around 100 files on most requests. APC opcode cache is enabled, include_once_override is enabled, and I have allocated 64MB ram to the cache, yet when I strace an apache process I still see it open()ing and stat()ing all of these includes for every request which should be pulled from cache. I can see in cache stats that the cache is being populated and used with a 100% hitrate. Can anyone offer any insight?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
请确保您对应用程序中的每个包含项使用完整路径名。 根据 APC 文档:
PHP 的一个好的经验法则是定义一个包含项目完整路径的常量,如下所示:
然后像这样使用包含:
因此,您仍然可以享受相对路径的便利,但实际上正在使用完整路径。
Will, be sure you are using full pathnames to every include in your application. Per the APC documentation:
A good rule of thumb for PHP is to define a constant that contains the full path to your project like so:
then use your includes like so:
Thus you still have the convenience of relative paths, but are really using full paths.