<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">30 января 2013 г., 11:30 пользователь teo <span dir="ltr"><<a href="mailto:nginx-forum@nginx.us" target="_blank">nginx-forum@nginx.us</a>></span> написал:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Trurl Wrote:<br>
-------------------------------------------------------<br>
<div class="im">> 29 января <a href="tel:2013" value="+9722013">2013</a> г., 23:18 пользователь teo <<a href="mailto:nginx-forum@nginx.us">nginx-forum@nginx.us</a>><br>
> написал:<br>
><br>
> > Я выкинул не непонятное, а то, что не имело отношение к делу.<br>
> > Еще раз перечитал - интересно каким образом можно восстановить какую<br>
> именно<br>
> > директорию вы там сканируете если пути относительные?<br>
> ><br>
><br>
> по длине имени самого файла. В temp они короче.<br>
<br>
</div>Не имею таких наблюдений, поэтому ничего сказать не могу. Хотя это косвенно<br>
подтверждает что для укладки в темп nginx использует не такой ключ, как для<br>
самого кеша - его право.<br></blockquote><div><br></div><div>Вообще-то это в документации есть.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div class="im">...<br></div><div class="im">
><br>
> я всего лишь пытался показать, что параметр proxy_max_temp_file_size<br>
> никакой роли не играет.<br>
<br>
</div>И я о том же. Он вообще не для кеша.<br></blockquote><div><br></div><div>Так и я не про кеш. Я про temp folder.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br><div class="im">
>Даже в кеш этот файл попасть не должен был,<br>
> потому<br>
> как max_size=5m.<br>
<br>
</div>Цитата:<br>
The special process “cache manager” monitors the maximum cache size set by<br>
the max_size parameter; when this size is exceeded it removes the least<br>
recently used data.<br>
<br>
Т.е. вы путаете размер всего кеша и размер конкретного файла в нем.<br>
И логика убирания файлов из кеша - не тех, что превышают ваш размер, а тех,<br>
кто наиболее редко использовался.<br></blockquote><div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
И никто не гарантирует в какой момент это станет происходить. Потому что<br>
найти файл подлежащий удалению - в момент приема текущего запроса - это<br>
слишком накладно. Поэтому есть фоновый процесс, который "медленно спускается<br>
с горы и проверяет каждый -файл-".<br>
Т.ч. при огромном кеше вообще непонятно за какое время он сделает полный<br>
цикл. А у него есть еще ограничения по цпу одной итерации и время паузы.<br>
<div class="im"><br></div></blockquote><div><br></div><div>Я не путаю. Я просто говорю про общую логику, а не про логику nginx. Согласитесь, что не логично пихать в кеш то, что немедленно оттуда должно быть выкинуто. <br>
</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="im">
<br>
> Но этот параметр тоже работает только задним числом<br>
> и то<br>
> не всегда. При скачивании очень больших файлов оные остаются в кеше<br>
> очень<br>
> на долго (не взирая на все ограничения), поскольку пока первый<br>
> запросивший<br>
> его стянет по своим медленным каналам - к тому времени появится еще<br>
> один<br>
> желающий стянуть тот же файл. В результате размер temp+кеша<br>
> гарантировано<br>
> больше proxy_max_temp_file_size+max_size, иногда в тысячи раз и до<br>
> переполнения диска. То есть использование nginx на продакшене на<br>
> сайтах с<br>
> геобалансингом и большим количеством крупного контента сопряжено с<br>
> серьезными рисками.<br>
<br>
</div>И я не знаю почему вы пытаетесь соотносить это с<br>
proxy_max_temp_file_size+max_size?<br>
Максимальный размер кеша задается в параметре keys_zone.<br>
И на моем опыте это еще ни разу не превысило указанный размер. Правда это на<br>
последней стабильной версии.<br></blockquote><div><br></div><div>В этом же треде мне недавно доказывали обратное:<br><br>> Размер keys_zone соотносится с размером кеша только опосредованно<br>> (т.к. ограничивает максимальное число элементов, которое может<br>
> храниться в кеше).<br></div><div> <br></div><div>И в документации:<br><br>> Кроме того, все активные ключи и информация о данных хранятся в зоне разделяемой памяти, <code><i>имя</i></code> и <code><i>размер</i></code> которой
задаются параметром <code>keys_zone</code>.</div><div><br></div></div>Видимо, таки баг где-то. Или в nginx, или в документации.<br></div></div>