Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: оптимизация модуля: пер еполнения и блокировки
----- minya <nginx-forum@xxxxxxxx> wrote:
> Valery Kholodkov Wrote:
> -------------------------------------------------------
> > Память из-под ngx_chain_t и ngx_buf_t
> > освободиться по завершению
> > запроса.
> > Память под чтение данных
> > освободиться по завершению
> > отправки,
> Какое из событий когда наступает?
Ну так скажем, любая память выделенная из пула запроса будет освобождена по
окончанию запроса (после записи в лог и т.д.).
Если из пула выделена память под чтение, то она обычно не освобождается, а
повторно используется (будем считать, что она таким образом освобождается). Это
делается в частности, чтобы не пережрать память.
> Ответ
> может быть достаточно большим. Если он
> целиком живет в памяти и запросов
> много, то можно пережрать память и
> загнать процесс в своп. С другой
> стороны, то запрос может выполняться
> достаточно долго. Количество запросов,
> обрабатываемых одновременно - не такое
> большое. Это количество ядер. Если
> количество подключений достаточно
> велико, и мы используем блокирующее
> чтение, то с хорошей вероятностью все
> ядра будут заняты ожиданием
> ввода-вывода, и большинство запросов
> будут ждать, пока они освободятся.
> Таким образом, мы сильно деградируем по
> времени ответа.
Было бы неплохо, если бы Вы объясняли более конкретно. Я опять ничего не понял.
> > а если
> > используется sendfile, то она
> > даже и не выделиться.
> не совсем понял, как это реализовать
Для этого достаточно засубмитить в nginx буферы с флагом is_file и
инициализированным начальным и конечным смещением а файле. nginx сам разберется
какой метод отправки использовать.
--
Regards,
Valery Kholodkov
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|