Конференция "Сети" » Keep-Alive в HTTP - как она работает?
 
  • Тимохов (18.05.08 23:17) [0]
    Здравствуйте.

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

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

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

    ВОПРОС. Может я зря "парюсь" и 6 запросов в сек - это нормально?
  • DVM © (18.05.08 23:29) [1]

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

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

    А что сервер делает?
  • DVM © (18.05.08 23:41) [2]

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

    соединение.
    запрос - ответ
    запрос - ответ
    ...
    запрос - ответ
    отсоединение.
  • Тимохов (19.05.08 00:08) [3]

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

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

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

    Как понять, держит этот ICS коннект или нет? Чем последить за ним? Какой-нибудь профайлер?
  • DVM © (19.05.08 00:14) [4]

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

    Я не пользовался HTTP сервером от ICS, но выяснить очевидно можно клиентом. Если после первого запроса повторная посылка send() вернет ощибку, значит соединение потеряно. Ну и надо в первом запросе Keep-Alive указать и протокол HTTP 1.1 вроде.
  • Тимохов (19.05.08 00:18) [5]

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

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

    сделал. все равно 6-7 в сек. видимо нужно дебужить сервер.
  • Тимохов (19.05.08 00:24) [6]
    Может какие средства есть для отладки сетей?
    Ну снифер понятно - но я так понял, что вот, WireShark, например, показывает пакеты. Но я не нашел в нем возможности следить за приложениями как они рвут соединения.
  • Сергей М. © (19.05.08 09:46) [7]
    Keep-Alive в любом протоколе (а не только в гипертекстовом) имеет целью совсем другое - максимально быстрое обнаружение нештатного (т.е. не связанного с прикладной логикой партнеров по инф.обмену) разрыва петли соединения, а так же в ряде случаев поддержание в актуальном состоянии в NAT-таблицах записей, относящихся к текущему соединению.
  • Тимохов (23.05.08 21:59) [8]

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


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

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

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

    Это вообще правильно для сетей? Какой-то внешний фактор мог воздействовать? Ну там, маршрутизация иначе вдруг пошла...
 
Конференция "Сети" » Keep-Alive в HTTP - как она работает?
Есть новые Нет новых   [134432   +19][b:0][p:0]