Добрый день!
> Да нет, это Вы все-таки не разобрались, как работает сквид.
> Запрошенный документ он вытягивает сразу, на предельно возможной
скорости.
> И складывает вытянутый документ в свой кэш (в памяти или на диске -
> зависит от разных обстоятельств, это сейчас неважно). При этом
одновременно
> начинает отдавать всем клиентам, которые документ просят.
Ну если он будет отдавать тот же документ другим клиентам, то для
динамических запросов это будет кошмар - они почти все всегда ориентированы
для одного клиента.
>
> Поэтому картина должна быть такая: независимо от размера буферов
> документы с backend'а тягаются на такой скорости, которую позволяет
> достичь LAN. Процесс этот ничем не тормозится, и заканчивается с
> концом документа (а вовсе не с уходом клиента, который, кстати,
> может быть не один - придет 2й пока не отвалился 1й, и тоже начнет
> качать, и так далее).
Я тоже ранее так думал, что будет все так работать. Но на живом сервере с
большим количеством запросов я видел обратное - httpd демоны тогда росли в
огромных количествах. На вскидку по памяти следующее - apache без
аксселератора имел в среднем около 70-90 процессов, когда я поставил
аксслеретор, отконфигурил в соотвествии с FAQ и топиками maillist-а squid-а,
то количество процессов apache тогда подскочило до 150-200 при той же
посещаемости сайтов. Я увеличивал размер буфера TCP в squid.conf (об этом
было тогда в самом топике про аккселерацию), но не помогло. Рылся в
исходниках squid-а, находил то место, где увеличивался размер приемного
буфера, но все мои умозаключения привели к тому, что то что вы пишите выше -
ваше умозаключение, которое не имеет общего с реальностью. squid НЕ
ОТПУСКАЕТ backend и не работает в бекендом на "максимальной сетевой скорости
с ним", если медленный клиент получает документ порциями (например, много
киентов, которые на диалапе и 100 Кб документ будут получать до 40 сек, при
этом держа backend).
> > А вам не кажется, что squid с бекендом работает через HTTP 1.0 и
keep-alive
> > в этой версии протокола не работает?
>
> Насчет того, что сквид запросы делает по HTTP/1.0 - правильно. Насчет
> невозможности keep-alive при запросе по HTTP/1.0 - совершенно неверно.
Это уже "неправильная" реализация apache, если можно так сказать. По RFC в
HTTP/1.0 нет Keep-Alive, а squid обязан работать по RFC, так как бекендом
может оказаться на apache сервер.
> Проверять не пробовали? :)
>
> % telnet localhost http
> Trying 127.0.0.1...
> Connected to localhost.
> Escape character is '^]'.
> HEAD / HTTP/1.0
> Connection: keep-alive
>
> HTTP/1.1 200 OK
> Date: Sun, 10 Feb 2002 12:03:10 GMT
> Server: Apache/1.3.14 (Unix) e1f mod_perl/1.24 rus/PL30.0
> Keep-Alive: timeout=45, max=100
> Connection: Keep-Alive
> Content-Type: text/html
>
> [здесь коннекция висит положенные 45 сек]
Ваша проверка работает для apache, но из этого не следует, что squid делает
keep-alive запросы к бекенду по HTTP 1.0 стандарту. Это ваши докадки и
умозаключения.
> Хотя я не исключаю того, что у Вас были какие-то иные проблемы, но все
> равно tcpdump поможет их выявить (надеюсь, лучше, чем мой тон:).
sniffit лучше такие вещи выявляет. Я им пользуюсь.
> > Вы вообще используете squid как аксселератор? Если да, то сколько хитов
в
> > день к нему (или к бекенду) идет? Или вы только теоретик squid-а?
>
> С акселераторами сейчас не работаю. А вообще я теоретик, судьба такая. :)
Ну тогда все понятно :)
Вот когда запустите squid аксселератор на 100 тыс. хитовом серваке с 90%
динамическими страницами, тогда я поверю, что squid работает так, как вы
написали.
> Eugene Berdnikov
Алексей Звягин
=============================================================================
= Apache-Talk@lists.lexa.ru mailing list =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =