请求之间12小时后HHVM响应延迟增加

时间:2014-08-13 21:33:14

标签: php nginx hhvm hiphop

我在CentOS 6.4系统上通过nginx 1.6.0运行HHVM 3.1.0。

我知道你第一次加载一个php文件时(或者前几次取决于你配置等待的JIT预热通过次数)响应很慢,但是一旦编译发生,后续请求要快得多。

我注意到的一件事是,一旦请求加速,它们会保持一段时间的快速,但如果我等了一夜又试着再次运行请求,就好像代码从未被编译一样 - 就像重新启动HHVM一样守护进程。

HHVM是否具有类似“编译生命周期”的内容。在一定数量的请求或时间之后重新编译代码?如果是这样,有没有设置方法来控制它?显然,在生产机器上,一旦你的缓存预热并且你所有的PHP代码都被JIT编译,你就不想在代码发生变化之前再次承担这些费用。

作为参考,我已经包含了我的HHVM配置ini文件:

 ; php options

 pid = /var/run/hhvm/pid
 date.timezone="America/New_York"
 ; hhvm specific

 hhvm.server.file_socket=/var/run/hhvm/hhvm.sock
 ;hhvm.server.port = 9000
 hhvm.server.type = fastcgi
 hhvm.server.default_document = index.php
 hhvm.log.level = Warning
 hhvm.log.always_log_unhandled_exceptions = true
 hhvm.log.runtime_error_reporting_level = 8191
 hhvm.log.use_log_file = true
 hhvm.log.file = /var/log/hhvm/error.log
 hhvm.log.header = true
 hhvm.repo.central.path = /var/run/hhvm/hhvm.hhbc
 hhvm.mysql.typed_results = false

 hhvm.eval.jit_warmup_requests = 0

1 个答案:

答案 0 :(得分:1)

好的,我的脸上有巨蛋。我遇到的问题是数据库中的缓存,而不是HHVM。在重新启动时(如在备份期间),Mysql查询缓存会丢失,因此整个页面会变慢。有时它就在你面前......