В скрипте для выполнения запросов использую jQuery. Запросов делаю сразу 20. Все запросы идут с разными параметрами на один и тот же скрипт. В ответах на запрос одним из параметров приходит время работы скрипта (microtime в начале минус microtime в конце). Для замера времени выполнения запросов использую firebug. Почему в части запросов время в фаербаге и в ответе совпадает, а иногда разница минимум в 2 раза (т.е. запрос выполняется минуту, а в ответе приходит ~ 30 секунд)
Ну это вполне очевидно, что время, затраченное сервером на обработку запроса не равно времени, затраченному на то, чтобы пакет дошёл по сети к клиенту.
И? Пакеты могут в очереди толкаться, мало ли. Тем более бомбить сервер 30-ю параллельными АСИНХРОННЫМИ запросами глупо, лучше сделать один и большой. А веб-сервер от таких DoS'еров имеет свои ограничения. Да я думаю просто апач охренел от такого количества соединений.
фаербаг не глючит, засекал. Складывается ощущение, что хоть и асинхронные запросы, но всё равно имеется очередь
Очередь копится на веб-сервере, он обслуживает гораздо меньше соединений параллельно. Запуск ab показывает, что если запустить слишком много потоков, то будут запросы, которые выполнялись и за 5 мсек, а некоторые выполнялись более 5 сек. Если вы будете делать больше 10 мелких запросов параллельно — вас ждут неприятные сюрпризы.
Кажется понял в чём дело. У меня денвер на винде. В нём стоит модуль mpm_winnt, у которого нет настроек, связанных с процессами. На линуксе такой проблемы возникнуть не должно.
Наконец разобрался, отчего это. Это настройки браузеров, ограничивающие одновременную загрузку файлов. В фф поправил через about:config, довёл до 30. Теперь всё в ажуре