недавно столкнулась с таким странным эффектом:
апач одновременно отдает не более 6-ти ответов от сервера.Каак проявляется:
допустим есть AJAX скрипт, который отправляет сразу 20 ассинхронных запросов на один и тот же скрипт, но с разными данными.
При этом запросы корректно отправляются в одно и то же время, но вот ответы от сервера получаются "порциями" по 6 штук. Для теста и наглядности в скрипте, к которому обращаемсся стоит sleep(10) (ждем 10 секунд).так вот первые 6 запросов выполнятся (будет получен ответ от сервера) через 10 секунд, следующие 6 через 20 секунд и тп.
Т.е. ощущение, что они каким-то образом вставют в "очередь"
из-за чего может быть такой эффект и как его устранить?
А на сколько процессов и потоков апач настроен?
> А на сколько процессов и потоков апач настроен?стоит mpm-itk
StartServers 5
MinSpareServers 10
MaxSpareServers 50
MaxClients 250
MaxRequestsPerChild 0
по таймаутам:
Timeout 100
KeepAlive On
MaxKeepAliveRequests 4000
KeepAliveTimeout 100
у кого-нибудь есть идеи?
> у кого-нибудь есть идеи?Если реально запущено тоже более 6 процессов апача, то возможно фаервол блокирует большее кол-во одновременных коннектов (или фронтенд, или прокси). Больше идей нет.
>> у кого-нибудь есть идеи?
> Если реально запущено тоже более 6 процессов апача, то возможно фаервол блокирует
> большее кол-во одновременных коннектов (или фронтенд, или прокси). Больше идей нет.нет, процессов ощутимо больше
>> Если реально запущено тоже более 6 процессов апача, то возможно фаервол блокирует
> нет, процессов ощутимо большеНа чём/на ком скрипт? Может, fastcgi какой запущен в к-ве только 6 штук?
>>> Если реально запущено тоже более 6 процессов апача, то возможно фаервол блокирует
>> нет, процессов ощутимо больше
> На чём/на ком скрипт? Может, fastcgi какой запущен в к-ве только 6
> штук?нет, mod_php
>> у кого-нибудь есть идеи?
> Если реально запущено тоже более 6 процессов апача, то возможно фаервол блокирует
> большее кол-во одновременных коннектов (или фронтенд, или прокси). Больше идей нет.прокси нет, апач крутится без nginx
файрвол стоит apf + там 80 порт стоит как порт для мин. задержек и макс пропускаемости
но там вроде никаких подобных настроек нет.
пробовала его отключать - отличий нет.
вообще очень странно конечно, почему такая "очередь" создается, при этом это именно в рамках одной сессии пользователя, т.е. другие коннекты с других сайтов на этом же сервере, будут нормально проходить в момент ожидания процессов по этому соединению.
> вообще очень странно конечно, почему такая "очередь" создается, при этом это именно
> в рамках одной сессии пользователя, т.е. другие коннекты с других сайтов
> на этом же сервере, будут нормально проходить в момент ожидания процессов
> по этому соединению.А сами запросы чем создаются? Если браузером, то это в нём может быть такое ограничение (на один сайт). Или в самом скрипте (мало ли что там закодено).
>> вообще очень странно конечно, почему такая "очередь" создается, при этом это именно
>> в рамках одной сессии пользователя, т.е. другие коннекты с других сайтов
>> на этом же сервере, будут нормально проходить в момент ожидания процессов
>> по этому соединению.
> А сами запросы чем создаются? Если браузером, то это в нём может
> быть такое ограничение (на один сайт). Или в самом скрипте (мало
> ли что там закодено).в скрипте точно нет (тестировалось на пустом скрипте с sleep(10); для наглядности), в броузере - тоже нет - последние броузеры FF, Ie.
>> А сами запросы чем создаются? Если браузером, то это в нём может
>> быть такое ограничение (на один сайт). Или в самом скрипте (мало
>> ли что там закодено).
> в скрипте точно нет (тестировалось на пустом скрипте с sleep(10); для наглядности),
> в броузере - тоже нет - последние броузеры FF, Ie.В браузерах, как раз, обязательно стоят такие ограничения. В фф надо зайти на страницу about:config и смотреть опции, начинающиеся с 'network.http.max'. У меня в фф 3.6 как раз по умолчанию стоит:
network.http.max-persistent-connections-per-server = 6