Re: Неконтроллируемый объем кеша Nginx

Dmitry xeioex at nginx.com
Fri Apr 24 14:10:59 UTC 2015


к сожалению, из логов только видны последствия некоторой проблемы

grep 'http file cache forced expire' error.log
2015/04/24 11:17:02 [debug] 6829#0: http file cache forced expire
2015/04/24 11:17:02 [debug] 6829#0: http file cache forced expire: #1 1 
854b2eed
2015/04/24 11:17:02 [debug] 6829#0: http file cache forced expire: #1 1 
a77628c2
...

в данном логе, первое поле после # это счетчик использования записи в кеше.
Что можно видеть из лога на данный момент это то, что кеш-менеджеру не
удается удалить записи так как счетчик использования записей ненулевой. 
Менеджер
пытается удалять записи в порядке от самых старых к самым новым, тут мы 
наблюдаем
что >=20 самых старых записей в кеше, все еще 'используются' (в 
текущей   реализации
nginx перестает пытаться удалять файлы если >20 попыток удаления были 
неуспешны).
Есть несколько гипотез которые могут объяснить такое поведение:
1) упал воркер (падающий воркер может оставить записи которые он 
обрабатывал в момент падения
в общем кеше (shmem) в неконсистентном состоянии)
2) файлы все еще используются (но судя по логам не нашел этому 
подтверждений)
3) ошибка в nginx, так что в какой то момент, счетчик недекрементируется.

1) можно исключить проверив аптайм воркер-процессов.

есть ощущение что самое интересное произошло гораздо раньше.
Не могли бы Вы сделать следующее?
1) сократить размер кеша, так мы сократим время воспроизведения проблемы
2) прислать дебаг-лог начиная с начала работы nginx. Конкретно интересует
часть лога до первого сообщения 'http file cache forced expire: #1'.


On 24.04.2015 12:41, vlakas wrote:
> Проблема повторилась. Дебаг можно скачать по ссылке:
> https://mega.co.nz/#!QcJDCJQC!eEAjwoUzJTwrQ98lTWD3oTeC3mPx4uX5kcMmkwZ4h1M
>
> Логи за 5 минут. В течении этого времени рост кеша наблюдался.
>
> Posted at Nginx Forum: http://forum.nginx.org/read.php?21,258292,258349#msg-258349
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru



Подробная информация о списке рассылки nginx-ru