【发布时间】:2009-07-26 09:27:09
【问题描述】:
我正在开发一个提供动态 PHP 代码的高流量网络服务器场,其中包含大多数请求的大约 100 个文件。 APC 操作码缓存已启用,include_once_override 已启用,并且我已经为缓存分配了 64MB 内存,但是当我 strace 一个 apache 进程时,我仍然看到它 open()ing 和 stat()ing 所有这些包括每个请求应该是从缓存中提取。我可以在缓存统计信息中看到缓存正在被填充并以 100% 的命中率使用。谁能提供任何见解?
【问题讨论】:
-
请问,您是否在使用和不使用 include_once_override 的情况下对您的服务器进行了基准测试?
-
谢谢!是的,我在有无的情况下进行了基准测试,并没有发现明显的差异。现在,在实现绝对路径后,我看到的 stat() 少了很多,但是,我仍然看到我所包含的每个文件都有一个 access(),即使使用apc.stat = 0。这正常吗?为什么必须访问这些文件?
-
您确定您看到的不只是文件的初始包含吗?你用的是什么版本? APC 在历史上一直存在与 include_once_override 相关的问题。另外,请使用回复而不是使用答案来编辑您的原始问题。
标签: php apache scalability apc strace