Re: sendfile(2) patch и отдача больших файлов на 7-STABLE amd64

Alexey V. Karagodov kav at karagodov.name
Tue Feb 3 11:52:35 MSK 2009


и покажите конфиг ядра, /boot/loader.conf и /etc/sysctl.conf

On 03.02.2009, at 9:26, Igor Sysoev wrote:

> On Mon, Feb 02, 2009 at 11:47:46PM +0300, Artemiev Igor wrote:
>
>> On Mon, Feb 02, 2009 at 10:11:21PM +0300, Igor Sysoev wrote:
>>> Судя по этому, nginx уходит в sendfile() с закэшированным  
>>> контентом один раз.
>>> Что он там делает - непонятно.
>> угу
>>
>>> А если на этой машине сделать пару загрузок с большим  
>>> kern.ipc.sfreadahead,
>>> а потому поставить его в 1, то скорость подымается до 50MB/s ? По  
>>> идее,
>>> должна остаться такой же - на уровне нескольких MB/s.
>>> И, насколько я понимаю, на непатченном ядре должно повториться то  
>>> же самое:
>>> быстрая первая закачка и медленный последующие.
>>
>> Нет, установка kern.ipc.sfreadahead=1 восстанавливает скорость до  
>> 51MB/s, как
>> это и было в случае с непатченным sendfile (я уже приводил порядок  
>> скоростей)
>
> То есть,
>
> 1) загрузились,
> 2) поставили kern.ipc.sfreadahead=64,
> 3) сделали несколько закачек, первая из них быстрая, остальные -  
> медленные,
> 4) поставили kern.ipc.sfreadahead=1,
> 5) сделали несколько закачек, все из них быстрые.
>
> Так ?
> И при этом при повторных закачках всё равно происходит обращение к  
> диску ?
>
> Если это так, то я не понимаю, почему: sfreadahead используется только
> во время чтения. Если страница файла уже в памяти (а они все в  
> памяти, о чём
> говорит 1039M Inactive), то код проходит мимо sfreadahead и он вообще
> не должно влиять на выполнение.
>
>
> -- 
> Игорь Сысоев
> http://sysoev.ru
>



More information about the nginx-ru mailing list