安装APC后,请参阅apc.php脚本,每隔一两个小时重启正常运行时间?为什么? 我怎么能改变它?
我设置apc.gc_ttl = 0
答案 0 :(得分:1)
APC在托管过程中缓存生命,可能是您的apache工作人员达到MaxConnectionsPerChild限制并且他们被杀死并重新生成用它清除缓存。这是一种防止泄漏过程的安全机制。
php -b
)您可以尝试将您正在使用的选项设置为“无关紧要”值(通常为0
)并使用简单的hello world php脚本和apachebench ab2 -n 10000 -c 10 http://localhost/hello.php
运行测试设置(根据需要调整值,以查看工作者的pid是否正在发生变化。
答案 1 :(得分:0)
如果使用0的TTL,APC将在内存不足时清除所有缓存插槽。这就是每2小时追加一次。
永远不要将TTL设置为0
请阅读手册以了解如何使用TTL:http://www.php.net/manual/en/apc.configuration.php#ini.apc.ttl
使用http://pecl.php.net/get/APC中的apc.php,将其复制到您的网络服务器以检查内存使用情况。
你必须留出足够的内存,以便APC在运行几个小时后有20%的空闲时间。定期检查。 如果没有足够的可用内存,请使用filters选项以防止很少访问的文件被缓存。
检查我的答案 What is causing "Unable to allocate memory for pool" in PHP?
答案 2 :(得分:0)
我今天遇到了同样的问题,在这里找到了解决方案: http://www.itofy.com/linux/cpanel/apc-cache-reset-every-2-hours/
您需要转到AccesWHM > Apache Configuration > Piped Log Configuration
和Enable Piped Apache Logs
。