Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: sendfile(2) patch и отда ча больших файлов на 7-STABLE amd64
On Mon, Feb 02, 2009 at 08:28:28PM +0300, Artemiev Igor wrote:
> On Mon, Feb 02, 2009 at 07:23:24PM +0300, Dmitry Morozovsky wrote:
> > Четырёхъядерник?
> Угу
>
> > Одно из ядер занято процессом, который заблокирован в системном вызове -
> > ищите какое и в каком
> Так в sendfile и занято (Broken pipe - это закачку оборвал на клиенте):
>
> setsockopt(0x6,0x6,0x4,0x7fffffffd854,0x4,0xfffffffffffff000) = 0 (0x0)
> sendfile(0x9,0x6,0x0,0x40000000,0x7fffffffe100,0x7fffffffe128) ERR#32 'Broken
> pipe'
> close(9) = 0 (0x0)
Судя по этому, nginx уходит в sendfile() с закэшированным контентом один раз.
Что он там делает - непонятно.
> Попробовал с наскоку менять sendfile_max_chunk на 64K, 128k, 1m, 2m -
> видимого
> эффекта нет, скорость остаётся всё той же.
А если на этой машине сделать пару загрузок с большим kern.ipc.sfreadahead,
а потому поставить его в 1, то скорость подымается до 50MB/s ? По идее,
должна остаться такой же - на уровне нескольких MB/s.
И, насколько я понимаю, на непатченном ядре должно повториться то же самое:
быстрая первая закачка и медленный последующие.
--
Игорь Сысоев
http://sysoev.ru
|