APC不断冲洗

在这里看到我的APC: http : //www.animefushigi.com/apc.php

如果持续点击左上angular的刷新button,请观察“命中”的数量和“开始时间”和“正常运行时间”值。 他们都上下。

我觉得这很奇怪,通常这三个值都应该随着时间的推移而变高,而不是下降(开始时间除外 – 应该保持不变)

我唯一的假设是caching每秒刷新一次。

我已经四处搜寻,并尝试了一些事情来解决这个问题

  • 禁用suEXEC
  • 设置apc.mmap_file_mask / dev / zero
  • 试过PHP 5 Handler的fcgi和cgi

也当我去/ tmp /上的SSH和做 – 我没有看到任何APC相关。

有什么build议么 ?

服务器是linux,使用whm / cpanel

*编辑:我怀疑这个问题可能是由于apc.mmap_file_mask。 目前它被设置为/tmp/apc-animefus.XXXXXX但是在apc.php页面上,似乎xxxxxx在每次刷新时被replace为别的东西

关于APC和不同模式的一些注意事项:

  • APC的caching本质上是每个进程。
  • 如果使用CGI,则会创build该进程,APC将创build其caching,然后该进程结束并清除caching。 (从我能find的,suPHP似乎是CGI样)。
  • 如果使用FastCGI,Apache会为每个同时请求生成一个进程。 它保持在他们的情况下,他们会再次使用。 每个进程都有自己的APCcaching。
  • 如果使用mod_php处理程序,它将在所有apache进程之间共享caching,但不作为用户运行。

观察:

  • caching没有重新设置每个页面刷新,我看到几个正在被重用,现在是五分钟的时间。 任何重新configuration​​的服务器将重置此。
  • 知道你获得同样的FastCGI过程的唯一方法就是成为唯一的客户端。
  • 您的网站上可能有这么多的请求,有几个FastCGI进程正在使用。

事情应该是真的:

  • 而在CGI或SUPHP模式下,值永远不会上升。
  • 在fcgid模式下,值会上下移动。
  • 而在mod_php / DSO模式下,这些值是正确的。

我会检查的东西(不以任何特定的顺序):

  • 观看你的用户下的PHP进程(使用顶级或类似的)。 看他们通常运行多久,如果他们退出。
  • 检查日志文件,看看有多less请求正在打PHP。
  • 创build一个脚本来检查脚本运行的进程ID,如果你喜欢把它们写到一个数据库/文件,所以你可以很容易地跟踪它们。 继续加载此页面以收集关于进程运行时间的信息。
  • 检查FastCGIconfiguration,我不确定cPanel如何configuration默认,因为它总是有一些问题,当我尝试一些网站。 有几个选项可以控制进程应该保持多久。 在缺省情况下,PHP将在FastCGI模式下的500个请求之后退出。 这是有目的的,因为一些运行很长时间后报告PHP泄漏的内存。 如果您的网站得到很多点击,您可能需要将这个数字提高。