在这里看到我的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泄漏的内存。 如果您的网站得到很多点击,您可能需要将这个数字提高。