Welcome! Log In Create A New Profile

Advanced

Re: помогите понять логику кеширования и буферизации

Maxim Dounin
January 28, 2013 09:18AM
Hello!

On Mon, Jan 28, 2013 at 03:36:50PM +0200, Trurl McByte wrote:

> 28 января 2013 г., 14:09 пользователь Maxim Dounin <mdounin@mdounin.ru>написал:
>
> > On Mon, Jan 28, 2013 at 01:22:52PM +0200, Trurl McByte wrote:
> >
> > > 28 января 2013 г., 11:25 пользователь Maxim Dounin <mdounin@mdounin.ru
> > >написал:
> > >
> > > > On Mon, Jan 28, 2013 at 03:34:00AM -0500, Trurl wrote:
> > > >
> > > > > Не могу ничего понять из документации.
> > > > >
> > > > > Допустим у меня вот такой набор:
> > > > > proxy_temp_path /var/lib/nginx/proxy 1 1;
> > > > > proxy_cache_path /var/lib/nginx/proxy/cache levels=1:1
> > > > > keys_zone=main_cache:256m inactive=42h max_size=5m;
> > > > > proxy_buffer_size 8k;
> > > > > proxy_buffers 32 8k;
> > > > > proxy_busy_buffers_size 64k;
> > > > > proxy_max_temp_file_size 0;
> > > > > # ( рекомендовали тут так для ограничения дискового пространства,
> > > > > используемого nginx - если что в корне не верно - поправте меня)
> > > > >
> > > > > И при таком наборе nginx все равно запихал в кеш файл размером 249M,
> > > > выкинув
> > > > > всю мелочь и остался доволен.
> > > > > Что я делаю не так? Как ограничить максимальный размер кешируемого
> > файла?
> > > >
> > > > Сейчас - никак. Ну то есть с бекенда можно явно запретить
> > > > кеширование, либо же через proxy_no_cache. Какой-либо директивы
> > > > "не кешировать файлы более N" - нет.
> > > >
> > >
> > > У меня бекендов много разных, там и апачи, и nginx (прочие удалось
> > заменить
> > > на nginx), в зависимости от целей. А proxy_no_cache не шибко применишь,
> > > если размер файла заранее не известен.
> >
> > Это всё понятно, потому и было написано, что сейчас - никак. Если
> > бекенд не выдаёт информации, явно запрещающей или позволяющей
> > запретить кеширование, то универсально работающего способа - нет.
> >
>
> А на бекэнде (nginx на файлере) есть _дешовый_ способ выставить хидеры в
> зависимости от размеров файла? Именно дешовый, потому как юзать перл и
> прочее на файлере - плохая идея.
> И какие?
> То ли X-Accel-Buffering (по идее при отключенном буфере кеширования нет, да
> и 80% такого контента - видео/аудио)
> То ли X-Accel-Expires (а оно точно не будет все равно кешировать и тут же
> экспайрить? И в temp пихать не будет?)
> Ну и X-Accel-Limit-Rate заодно...

Expires в прошлом - выключает кеширование (равно как и
X-Accel-Expires, Cache-Control max-age). Что именно использовать -
at your option, я бы наверное выключал через X-Accel-Expires.

Не перлом - можно попробовать через

map $http_content_length $expires {
default "";
"~[0-9]{7,}" "0";
}

add_header X-Accel-Expires $expires;

(untested)

Хотя я бы рекомендовал кешируемый и не кешируемый контент просто
разнести в разные каталоги, и включать кеш только там, где надо.

[...]

> > > > Размер кеша может превышать установленный максимальный размер
> > > > (max_size), если cache manger ещё не успел его уменьшить,
> > > > либо он не может это сделать из-за того, что элементы кеша
> > > > используются рабочими процессами.

[...]

> Причем пробег кеш-менеджера в таком состоянии может и вычистить все
> (совсем, все файлы, не взирая на размер), если нагрузки нет. А может и не
> тронуть.

Если "может вычистить" без нагрузки - то скорее всего дело в том,
что под нагрузкой элементы кеша используются рабочими процессами
(i.e. соответствующий элемент кеша сейчас обновляется). Выше -
цитата из исходного ответа.

[...]

> у нас эксклюзивные (то есть свои) видео и аудио. Да и всякие инсталлеры
> модов тоже жирные бывают. Типа HiRes тесктур для Скайрима (5GB файлик).
>
> У сквида есть maximum_object_size_in_memory и maximum_object_size для
> такого случая.
> А в nginx вроде бы есть связка
> proxy_buffer_size+proxy_buffers+proxy_max_temp_file_size для того же, но,
> почему-то, работает не адекватно.

См. выше, в nginx'е - сейчас нет ограничения на максимальный
размер кешируемого ответа.

--
Maxim Dounin
http://nginx.com/support.html

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

помогите понять логику кеширования и буферизации

Trurl January 28, 2013 03:34AM

Re: помогите понять логику кеширования и буферизации

Maxim Dounin January 28, 2013 04:26AM

Re: помогите понять логику кеширования и буферизации

Trurl January 28, 2013 06:24AM

Re: помогите понять логику кеширования и буферизации

Maxim Dounin January 28, 2013 07:10AM

Re: помогите понять логику кеширования и буферизации

Trurl January 28, 2013 08:38AM

Re: помогите понять логику кеширования и буферизации

Maxim Dounin January 28, 2013 09:18AM

Re: помогите понять логику кеширования и буферизации

Trurl January 28, 2013 09:30AM

Re: помогите понять логику кеширования и буферизации

teo January 28, 2013 03:00PM

Re: помогите понять логику кеширования и буферизации

Trurl January 28, 2013 04:40PM

Re: помогите понять логику кеширования и буферизации

teo January 28, 2013 05:02PM

Re: помогите понять логику кеширования и буферизации

Trurl January 29, 2013 02:58PM

Re: помогите понять логику кеширования и буферизации

teo January 29, 2013 04:18PM

Re: помогите понять логику кеширования и буферизации

Trurl January 29, 2013 09:24PM

Re: помогите понять логику кеширования и буферизации

teo January 30, 2013 04:30AM

Re: помогите понять логику кеширования и буферизации

Trurl January 30, 2013 04:48AM

Re: помогите понять логику кеширования и буферизации

teo January 30, 2013 05:51AM

Re: помогите понять логику кеширования и буферизации

Maxim Dounin January 30, 2013 05:56AM

Re: помогите понять логику кеширования и буферизации

Maxim Dounin January 30, 2013 12:32PM

Re: помогите понять логику кеширования и буферизации

teo January 30, 2013 03:54PM

Re: помогите понять логику кеширования и буферизации

Trurl January 30, 2013 09:46PM

Re: помогите понять логику кеширования и буферизации

Trurl January 30, 2013 09:52PM

Re: помогите понять логику кеширования и буферизации

teo January 28, 2013 02:34PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 298
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready