feature request: sendfile management

Igor Sysoev is at rambler-co.ru
Wed Oct 10 16:20:20 MSD 2007


On Tue, Oct 09, 2007 at 07:41:29PM +0300, MZ wrote:

> Замечено что использование sendfile ухудшает производительность при
> отдаче больших файлов, которые не кешируются эффективно операционкой. То
> есть если общий обьем тех файлов что часто запрашиваются не помещается в
> RAM и оси приходится читать их с диска постоянно для каждого запроса.
> Выключение sendfile увеличивает отдачу с дисков (по данным gstat) раза в
> полтора.
> 
> Я думаю есть смысл не использовать sendfile для больших файлов, то есть
> смотреть на размер файла перед отдачей, и если его размер превышает тот
> что установлен какой-то директивой (типа sendfile_max_filesize 10m) -
> такие файлы отдавать обычным методом.

У меня есть ощущение, что при использовании sendfile_max_filesize будет
так же или ещё хуже. Насколько я понимаю, если карточка умеет TX csum и
DMA (например, em, bge, fxp), то сейчас во FreeBSD при использовании
sendfile() страницы файла не помечаются как недавно используемые и,
соответственно, когда pagedaemon проверяет использованность старниц,
такие страницы имеют большие шансы вылететь из памяти.

В предыдущем письме я по ошибке отправил патч для 6.x, который
помечает страницы как использованные. Если кто-то может проверить
в ситуации, когда памяти меньше, чем размер всех файлов, то было
бы интерсно. Я погонял этт патч на машине, где весь контент влазит
в память, разницы не увидел.


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





More information about the nginx-ru mailing list