сможет ли nginx следующее

Igor Sysoev is at rambler-co.ru
Mon Jan 3 19:08:37 MSK 2005


On Mon, 3 Jan 2005, Kpoxa KpoIIIkin wrote:

> Igor Sysoev пишет:
>
> >proxy_buffers задаёт размер буфера и их максимальное число для одного запроса.
> >Буфера выделяются по мере необходимости, то есть, для ответа в 50K будет
> >выделено 2 буфера размером 32К. По мере получения ответа он отдаётся клиенту,
> >поэтому для быстрого клиента число буферов для хранения всего ответа в
> >памяти может быть меньше, чем нужно для хранения всего ответа. Часть ответа
> >начинает записываться во временный файл, когда достингут максимум
> >выделенных буферов. Запись во временный файл делается не постоянно, например,
> >конец ответа в файл не пишется, а есть только в памяти. А середина при этом
> >может находится в файле.
> >
> Таким образом получается, что nginx при проксировании бэкенда получается
> у него ответ целиком, независимо от размера ответа и размера буферов?
> Что будет в случае ответа размером в сотни мегабайт?
> На сервере памяти будет 2-4 гига, имеет ли смысл давать использовать
>  100-200 мегов памяти на поток?

От размера ответа зависит, но в разумных пределах. Максимальный
размер временного файла задаётся директивой proxy_max_temp_file_size,
по умолчанию, 1G. Если ответ больше, то он будет передаваться синхронно.
Можно вообще запретить использовать временные файлы:

proxy_max_temp_file_size  0;

Что касается 100М на поток, то при 2G памяти можно обслужить только примерно
20 потоков. Потом начнётся свопинг. Я бы поставил что-то вроде 1M.
Но в принципе, можно экспериментировать - ручки для настройки есть.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list