Hello! On Tue, Jul 23, 2019 at 02:40:59AM -0400, rihad wrote:
> > Если загрузка кэша не завершена - nginx при обращении к элементу > > кэша, которого ещё нет в памяти, явно проверяет, есть ли > > соответствующий файл на диске. То есть к лишним обращениям на > > бэкенд это не приводит. > > Глядя на объемы памяти RSS, а также на текущий обрабатываемый каталог из > вывода lsof, у меня такое впечатление что при SIGHUP nginx и запуске > второго cache loader (первый при этом не умирает, убиваю его через TERM > вручную) уже прочитанные объекты из shared memory не стираются, т.е. он > просто продолжает откуда его прервали. Так ли это? Спасибо. Вообще если cache loader уже работает с кэшом, то новый cache loader при релоаде не запускается. Может запуститься, если кэшей больше одного - и начнёт загружать другие кэши. Каждый кэш загружается единожды, так что наличие больее чем одного cache loader'а - влияет разве что на параллелизм процесса. Уже загруженные элементы из памяти, естественно, не стираются, но продолжать откуда прервали cache loader не умеет, и в случае чего будет обходить каталог кэша заново. Если кэшей много, и какие-то полностью загружены - они загружаться заново не будут. Но вообще убивать старый cache loader - это в любом случае плохая идея, с некоторой вероятностью не повезёт (практически гарантированно, если не успеть в первую минуту после запуска нового cache loader'а), и кэш, с которым он работал, так и останется незагруженным. -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru