Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Keep-Alive в HTTP - как она работает?


Тимохов ©   (2008-05-18 23:17:00) 

Здравствуйте.

Я тут разбираюсь с ICS для целей написания простенького вебсервера (все клиенты обрабатываются последовательно, т.е. в контексте одного потока).

Все написал и устроил нагрузочное тестирование. Как оказалось в секунду держит 6 запросов, что, на первый взгляд, кажется мало.

Я так понимаю, что дело не в логике сервера, а в том, что приходится каждый раз соединение устанавливать.

ВОПРОС. Может я зря "парюсь" и 6 запросов в сек - это нормально?


Тимохов   (2008-05-23 21:59:00) [1]


> DVM ©   (18.05.08 23:29) [1]
> > Может я зря "парюсь" и 6 запросов в сек - это нормально?
> Нет, не нормально. Мало. Нормально - несколько сотен минимум.
> А что сервер делает?


Причина была в том самом COMODO. Снес его. Заработало очень быстро.

На localhost вообще без меры (несколько тыс, имхо в сек).

На рабочий сервер по сети тоже быстро, но что интересно с перерывами: 50 запросов подряд за несколько десятых в сек, потом задержка на сек, потом еще 100 и т.д.

Это вообще правильно для сетей? Какой-то внешний фактор мог воздействовать? Ну там, маршрутизация иначе вдруг пошла...


Сергей М.   (2008-05-19 09:46:00) [2]

Keep-Alive в любом протоколе (а не только в гипертекстовом) имеет целью совсем другое - максимально быстрое обнаружение нештатного (т.е. не связанного с прикладной логикой партнеров по инф.обмену) разрыва петли соединения, а так же в ряде случаев поддержание в актуальном состоянии в NAT-таблицах записей, относящихся к текущему соединению.


Тимохов   (2008-05-19 00:24:00) [3]

Может какие средства есть для отладки сетей?
Ну снифер понятно - но я так понял, что вот, WireShark, например, показывает пакеты. Но я не нашел в нем возможности следить за приложениями как они рвут соединения.


Тимохов   (2008-05-19 00:18:00) [4]


>  Ну и надо в первом запросе Keep-Alive указать и протокол
> HTTP 1.1 вроде.

указал. спеку я посмотрел обзороно - там говорица про то, что нужно юзать 1.1.

сделал. все равно 6-7 в сек. видимо нужно дебужить сервер.


DVM   (2008-05-19 00:14:00) [5]


> Как понять, держит этот ICS коннект или нет? Чем последить
> за ним?

Я не пользовался HTTP сервером от ICS, но выяснить очевидно можно клиентом. Если после первого запроса повторная посылка send() вернет ощибку, значит соединение потеряно. Ну и надо в первом запросе Keep-Alive указать и протокол HTTP 1.1 вроде.


Тимохов   (2008-05-19 00:08:00) [6]


> DVM ©   (18.05.08 23:29) [1]
> > Может я зря "парюсь" и 6 запросов в сек - это нормально?
> Нет, не нормально. Мало. Нормально - несколько сотен минимум.
> А что сервер делает?

Сервер, поверь мне, быстрый - несколько десяков хитрых битовых преобразований. Я потестил отедльно - без сети в рамках одного процесса в сек. выполняется немеряно (задал 10000 выполнений, не заметил как выполнилось).

Собсно вопрос вот о чем - стоит ли мне копать ICS с целью заставить коннект держать? Теперь я вижу, что вроде стоит, что должно быть больше, нежели 6 в сек.

Как понять, держит этот ICS коннект или нет? Чем последить за ним? Какой-нибудь профайлер?


DVM   (2008-05-18 23:41:00) [7]


> Keep-Alive в HTTP - как она работает?

соединение.
запрос - ответ
запрос - ответ
...
запрос - ответ
отсоединение.


DVM   (2008-05-18 23:29:00) [8]


> Может я зря "парюсь" и 6 запросов в сек - это нормально?

Нет, не нормально. Мало. Нормально - несколько сотен минимум.

А что сервер делает?


Наверх

Титульная страница Поиск, карта сайта Написать письмо