Re: Файлы из кэша удаляются преждевременно
Maxim Dounin
mdounin на mdounin.ru
Чт Апр 25 14:51:55 UTC 2019
Hello!
On Wed, Apr 24, 2019 at 01:21:06PM -0400, Ilya Evseev wrote:
> Nginx 1.15.11
> Система - CentOS 7 с ядром 4.18
> /data живёт на Cepf.
>
> Обнаружено преждевременное удаление файлов из кэша Nginx.
> Кэш настроен так:
>
> proxy_cache_path /data/user123/nginx_cache keys_zone=user123:3000m
> max_size=20000g inactive=30d levels=1:2 use_temp_path=off;
>
> В /data/user123/nginx_cache сейчас лежит около 5 миллионов файлов (т.е.
> примерно 20% от максимума 3000m),
> которые занимают 6 терабайт (30% от максимума 20TB).
На вскидку вспоминаются две причины, почему может быть так:
- При работе на экзотических файловых системах сообщаемый nginx'у
размер на диске может значительно отличаться от собственно
размера файла и/или значительно меняться в процессе. Такое,
например, наблюдается на XFS
(https://trac.nginx.org/nginx/ticket/157).
- Если вдруг из каталога кэша кто-то удалил часть файлов в
процессе работы - nginx будет продолжать считать, что эти файлы
существуют, и учитывать их при очистке кэша по max_size. Частным
случаем этой ситуации может являться запуск другого nginx'а,
использующего тот же каталог для хранения кэша - уже наблюдал, как
люди пытаются таким образом строить "общий кэш" на нескольких
серверах, однако следует понимать, что такой подход принципиально
неверен и чреват проблемами.
С учётом использования Ceph для хранения кэша (зачем?!) - я бы
предположил, что причиной может быть как любая из этих причин, так
и обе они вместе.
--
Maxim Dounin
http://mdounin.ru/
Подробная информация о списке рассылки nginx-ru