Задержка ответа 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
Author: Ray, 2014-08-14

1 answers

Ладно, гигантское яйцо на моем лице. Проблема, с которой я столкнулся, была связана с кэшем в базе данных, а не с HHVM. При перезапуске (например, во время резервного копирования) кэш запросов Mysql теряется, следовательно, общая скорость страницы замедляется. Иногда это прямо у тебя перед носом...

 1
Author: Ray, 2014-09-18 15:02:36