Как сохранить кэшированный Varnish заполненным после backend в течение длительного периода?

У нас есть Varnish 3.0.2, работающий на Linux от Amazon, и он прекрасно работает. У нас есть 48 часов для большинства страниц контента и намного больше для изображений, PDF и т. Д.

В эти выходные мы взяли бэкэнд для некоторого обслуживания, поэтому я поднял ttl до 5 дней ранее на этой неделе. Я предполагал, что все в кеше будет обслуживаться до 5 дней, но к нашему разочарованию мы проверили varnishstat сегодня утром и кеш был почти полностью пуст, а лак обслуживал сообщения "страница не найдена".

Я знаю, что это не то, для чего предназначен Varnish, но зачем он сбрасывает свой кэш, когда сервер не работает? И как я могу предотвратить это в следующий раз?

Обновление 2012-06-11: После просмотра в /var/log/messages я вижу каждые 3 часа или около того:

Jun  9 03:56:31 idea-varnish varnishd[1128]: Manager got SIGINT
Jun  9 03:56:33 idea-varnish varnishd[6708]: Platform: Linux,3.2.18-1.26.6.amzn1.x86_64,x86_64,-smalloc,-smalloc,-hcritbit
Jun  9 03:56:33 idea-varnish varnishd[6708]: child (6709) Started
Jun  9 03:56:33 idea-varnish varnishd[6708]: Child (6709) said Child starts

Я предполагаю, что это сбой сервера и стирание всех объектов в памяти. Я только сейчас установил -debuginfo rpm, но не уверен, что это покажет что-то еще.

Я предположил, что мы могли бы вернуться к дисковому хранилищу во время запланированного простоя? или авария, как это, в любом случае стереть?

1 ответ

Решение

Возможно, процесс лака возобновился? В Лаке есть счетчик времени безотказной работы. При определенных обстоятельствах рабочая нить лака может умереть, но она немедленно перезапускается. Когда все работает нормально, это может остаться незамеченным, но с (запланированным) временем простоя бэкэнда это может быть довольно неудобно.

Другие вопросы по тегам