我在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
答案 0 :(得分:1)
好的,我的脸上有巨蛋。我遇到的问题是数据库中的缓存,而不是HHVM。在重新启动时(如在备份期间),Mysql查询缓存会丢失,因此整个页面会变慢。有时它就在你面前......