Re: wait time при кешировании proxy cache

Maxim Dounin mdounin на mdounin.ru
Чт Фев 22 17:48:32 UTC 2018


Hello!

On Thu, Feb 22, 2018 at 12:03:10PM -0500, Bloof wrote:

> Добрый день.
> 
> Я использую nginx как раздающий сервер для кеширования небольших видеофайлов
> с другого сервера-хранилища. Среднее время получения одного файла из
> хранилища 20 мсек, максимальное 200 мсек. Если два клиента приходят к nginx
> за одним файлом практически одновременно, то nginx одного клиента ставит на
> загрузку файла из хранилища, а второй клиент попадает на ожидание
> lock_timeout/lock_age
> (https://github.com/nginx/nginx/blob/branches/stable-1.12/src/http/ngx_http_file_cache.c#L452).
> При этом ставится таймер, который каждые 500 мсек проверяет наличие файла в
> кеше. Получается, что время таймера сильно больше времени получения файла из
> хранилища. Уменьшать proxy_cache_lock_timeout нет возможности, так как можно
> перегрузить канал между nginx и хранилищем. Есть ли возможность
> обойти/уменьшить этот таймер, кроме как менять значение в сорцах и
> перекомпилировать nginx? Можно ли поставить что-то типа inotify ивента на
> появление/изменение файла в кеше?

Нет, сейчас способов как-то повлиять на этот таймер, кроме как с 
помощью малого значения proxy_cache_lock_timeout, нет.

-- 
Maxim Dounin
http://mdounin.ru/


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