ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[4]: Память на буферы з аполучить



On Wed, 22 Feb 2006, Anton Maksimenkov wrote:

Внимание вопрос. Вот есть 4 буфера по 512к. Вот клиент запросил
страничку, там ну пускай 10 картинок по 100к. Как будут развиваться
события и использоваться буферы?
...
Это буфера для одного соединения. Файл читается в 512k буфер за один read.
Для одного клиента файл прочитается в 4 буфера по 512K.
Для второго клиента файл прочитается в 4 буфера по 512K.
Для третьего клиента ...
Для четвёртго клиента ...
Для пятого клиента ...
И так далее, пока не кончатся клиенты или память.

Разрешите продолжить.
Итак, получается, что при подключении клиента выделяется некий так
скажем "контекст", и в рамках этого "контекста" те 4 блока по 512к.
Вот клиент запросил страничку и затем к ней 10 картинок по 100к.
nginx читает 1-й файл в 1-ый буфер. Затем ещё 4, итого 500к занято.
Следующий, 6-ой файл будет прочитан во 2-ой буфер? Или часть (12к) в
1-ый до его заполнения, а остальная часть во 2-ой?
И главное - как будут развиваться события по выдаче клиенту? Вот
прочитан 1-ый файл в 1-ый буфер и... будет сразу передаваться, а
параллельно с этим читаться и по мере окончания чтения передаваться
остальные файлы?

output_buffers - это буфера на один запрос. По окочанию запроса
они освобожаются. Если клиент откроет одновременно десять запросов,
то в каждом из них будет выделено до 4 буферов по 512К.
Если файл размером в 1К, то выделен будет один буфер 1К (а не 4 по 512К).
По одному соединению можно обработать несколько запросов, они обрабатываются
последовательно.

Не поставить ли postpone_output вместо 1460 что-то поменьше?

postpone_output запрещает вывод данных в ядро, если накоплено меньше.
Это позволяет посылать полноразмерные TCP пакеты.
Можно поставить меньше.


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



 




Copyright © Lexa Software, 1996-2009.