Мы используем CentOS / nginx fastcgi_cache для кеширования запросов к файлам PHP на нашем сервере. К этому файлу обращаются очень часто, а также он очень часто обновляется, поэтому он имеет кеш 1 с.
Обычно при просмотре журнала доступа мы видим что-то вроде этого:
00:01 REQUEST 1 "EXPIRE"
00:01 REQUEST 2 "HIT"
00:01 REQUEST 3 "HIT"
00:02 REQUEST 4 "EXPIRE"
00:02 REQUEST 5 "HIT"
00:02 REQUEST 6 "HIT"
Когда возникает проблема, что-то происходит с nginx, и внезапно журнал начинает выглядеть так (все истекает, даже если в ту же секунду):
00:01 REQUEST 1 "EXPIRE"
00:01 REQUEST 2 "EXPIRE"
00:01 REQUEST 3 "EXPIRE"
00:02 REQUEST 4 "EXPIRE"
00:02 REQUEST 5 "EXPIRE"
00:02 REQUEST 6 "EXPIRE"
Важное примечание: непосредственно перед тем, как это произойдет, отчеты php-fpm: ПРЕДУПРЕЖДЕНИЕ: сервер [pool www] достиг параметра max_children (35), рассмотрите возможность его повышения. УВЕДОМЛЕНИЕ: завершение работы ... УВЕДОМЛЕНИЕ: завершение работы, до свидания! ВНИМАНИЕ: fpm запущен, pid 27544 ВНИМАНИЕ: готов обрабатывать соединения
(Это ненормальное поведение и встречается очень редко)
Я попытался перезапустить php-fpm в середине работы, чтобы посмотреть, не влияет ли это на кеш - нет. Я также пробовал нагрузочное тестирование определенных файлов, которые часто вызываются, и я не могу заставить систему сойти с ума. Также проверил, что ключ кеширования настроен правильно.
У кого-нибудь есть идеи, какие еще возможности здесь существуют? Что еще я могу изучить?
P.S Чтобы исправить это, когда это происходит, мы останавливаем запросы файла и перезапускаем службу, и она снова работает ..
Спасибо за помощь, Алон