Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Igor Sysoev                          2:5020/400     04 Feb 2004  19:05:57
 To : Slawa Olhovchenkov
 Subject : Re: sendfile
 -------------------------------------------------------------------------------- 
 
 Slawa Olhovchenkov <Slawa.Olhovchenkov@f500.n5030.z2.fidonet.org> wrote:
 
 > 04 Feb 04, Igor Sysoev writes to Slawa Olhovchenkov:
 > 
 >  >> Э нет, не согласен.
 >  >> С чего бы на отдаче ответа тормозить? Мы уже в TCP буфера соединений
 >  >> данных понапихали -- знай наливай да пей.
 > 
 >  IS> 1) у какого-то соединения в этот момент буфер может быть уже пустым.
 > 
 > Hе должен. Как только в SENDBUF будет свободно 2К -- в сокет можно
 > будет писать
 
 sendfile()у вообще-то нужно 4К, но это неважно. Если на момент
 освобождения процесс заблокирован, то он об этом не узнает. Узнает
 позже, после разблокирования.
 
 >  IS> 2) допустим, есть клиент со скростью 1Mbit/s или 100Kbyte/s. Он может
 >  IS> забирать данные со скростью 100*1024/1500 = 68p/s, то есть, одни пакет
 >  IS> каждые 14ms.
 > 
 > Hу и дальше-то что?
 
 Hу как что ? Если чтение с диска 20ms, то он не получит один пакет вовремя.
 
 Короче, если операции с диском быстрее, чем клиент вытягивает данные,
 то клиент не заметит задержки. Если диск медленее, то клиент, будет ждать.
 
 >  >> С чтением запроса -- TCP ханшейк уже прошел (акцепт филтр, да?) -- знай
 >  >> в буфера наливай.
 > 
 >  IS> Я подчеркнул - _тело_ запроса. Заголовок-то мелкий, он после хэндшэйка,
 >  IS> насколько я понимаю, в буфер и без фильтра попадёт. Хотя это надо
 >  IS> проверить.
 > 
 > Так с какой стати телу-то не  попадать?! Хандшейк прошел -- TCP сессия
 > установилась -- та сторона свободна в своем желании наливать нам данных до
 > RECVBUF. Стек ведь на сегменты ACK самостоятельно шлет. А то, что до
 > приложения данные еще не добрались -- то ну никому с той стороны не ведомо.
 
 Hу так тело-то может быть и побольше RECVBUF.
 
 >  >> С акцептом -- если под этим TCP хандшейк понимать -- то с чего бы ему
 >  >> тормозится? Ему с диска ничего не надо.
 >  >> Если сам вызов -- то да. Это то, про что я говорил -- реакция на коннект
 >  >> может последовать чуть позже.
 > 
 >  IS> Hу да, вызов accept() будет позже.
 > 
 > Это ИМХО единственное что и будет происходить.
 
 Hе только.
 -- 
 Игорь Сысоев
 http://sysoev.ru
 --- ifmail v.2.15dev5.3
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: sendfile   Igor Sysoev   04 Feb 2004 19:05:57 
 sendfile   Slawa Olhovchenkov   04 Feb 2004 19:54:00 
Архивное /ru.unix.bsd/657752ed8f99.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional