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

Igor Sysoev is at rambler-co.ru
Mon Feb 20 18:23:44 MSK 2006


On Mon, 20 Feb 2006, Anton Maksimenkov wrote:

>>>> http {
>>>
>>>>      output_buffers  4 32k;
>>>>      postpone_output 1460;
>>>
>>> Из треда понял, что эти буферы - общие для всех процессов. Сделал
>>> 4 512к. Отжирается также порядка 15 Мбайт.
>> Это буфера для одного соединения. Файл читается в 512k буфер за один read.
>
> Внимание вопрос. Вот есть 4 буфера по 512к. Вот клиент запросил
> страничку, там ну пускай 10 картинок по 100к. Как будут развиваться
> события и использоваться буферы?
> Предполагаю: 1-й файл читается в 1-ый буфер, ессно занимает не весь
> буфер, но тем не менее, буфер отдается клиенту; 2-ой файл читается во
> 2-ой буфер (а не подпихивается в остаток 1-го), этот 2-й буфер
> отдается клиенту. И т.д. будут использованы все 4 буфера и более менее
> параллельно будут отдаваться клиенту(ам). Затем будет "ожидание
> освобождения буферов", как только будет передан 1-ый, целиком, и
> соответственно освобожден, в него будет считан 5-й файл и будет
> отдаваться клиенту.
> Может я конечно вру и всё не так. Не знаю как будет если файл больше
> буфера, возможно он будет считываться в буферы соответствующими
> кусками и отдаваться.
>
> Короче, появилась мысль, а не поставить ли этих буферов тыщ 50 ?

Нет.

>> Это буфера для одного соединения. Файл читается в 512k буфер за один read.

Для одного клиента файл прочитается в 4 буфера по 512K.
Для второго клиента файл прочитается в 4 буфера по 512K.
Для третьего клиента ...
Для четвёртго клиента ...
Для пятого клиента ...
И так далее, пока не кончатся клиенты или память.


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





More information about the nginx-ru mailing list