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