Задержка ответа HHVM увеличивается через 12 часов между запросами
Я запускаю HHVM 3.1.0 через nginx 1.6.0 в системе CentOS 6.4.
Я знаю, что когда вы загружаете 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 answers
Ладно, гигантское яйцо на моем лице. Проблема, с которой я столкнулся, была связана с кэшем в базе данных, а не с HHVM. При перезапуске (например, во время резервного копирования) кэш запросов Mysql теряется, следовательно, общая скорость страницы замедляется. Иногда это прямо у тебя перед носом...