On Sun, Feb 10, 2002 at 02:13:36PM +0500, Alexey Zvyagin wrote:
> > О как. Неужели squid тормозит бэкенды ? Я внутрь не смотрел, но
> > мне казалось, что он не должен. Это проверенная информация ?
>
> Достаточно проверенная - трахался на реально-работающем серваке (у нас сайт
> www.pingwin.ru и много других динамических сайтов с большой нагрузкой).
Интересно, и зачем глупые люди используют сквид в режиме акселерации? :)
> Сначала обнаружил тогда, что squid мой старый не передавал Host, потом
> порывшись, обнаружил в буржуйских топиках, что другие админы тоже хотели,
> чтобы Host оригинальный передавался и была выпущена новая версия squid. Вот
> по горячим своим следам сейчас нашел:
>
> # TAG: redirect_rewrites_host_header
> # By default Squid rewrites any Host: header in redirected
> # requests. If you are running a accelerator then this may
> # not be a wanted effect of a redirector.
> #
> #Default:
> # redirect_rewrites_host_header on
>
> То есть ставишь в off и Host остается как клиента передавал в original
> request. То есть то что я тогда и использовал
Вы не перепутали с директивой "httpd_accel_uses_host_header on"?
Редиректор акселератору как-то побоку (и обычно на frontend'ах его нет
по вполне понятным причинам).
> Также, в squid есть такая директива:
> tcp_recv_bufsize 102400 bytes
>
> Я поставил тогда буфер в 100 Кб на сокет, разумеется изменил в sysctl размер
> буфера для TCP (сразу скажу, что размер сокета точно был позволителен
> системой, да и squid иначе в логи пишет, что не может увеличить размер
> буфера иначе) и надеялся тогда, что он будет после получения от backend-а
> ответа закрывать сокет и разруливаться дальше с медленным клиентом, но как
А причем здесь размер буфера? И с какой стати сквид при _малом буфере_
должен ждать, пока клиент будет вытягивать документ? Объясните.
Мне кажется, Вы просто не понимаете, как сквид работает.
> оказалось на практике - сокет оставался открытым с бекендом и он держал
> backend пока клиент не получал свой полностье response... Я это видел по
Ужас! :) А выключить на backend'e keep-alive и поставить на сквиде
pconn_timeout в 0 не пробовали?
> всей загрузке системы, так как мог сранивать до и после установки squid. Кол
> ичество апачей тогда выросло раза в 3-5, все работало, но потом через
> несколько минут потихоньку свапилось с огромной скоростью и уходило в
Класс! Акселератор вместо того, чтобы разгружать backend, наоборот,
тормозит его. Вам не приходила в голову мысль, что здесь что-то не так? :)
> даун... Пришлось от него отказаться, а apache настроить на то, чтобы child-ы
> умирали после ~ 100 запросов - тогда share memory не "расшатывалась" и
> свопинга не было. Так и до сих пор, вот собственно теперь одна надежда на
> mod_accel :)
Я ничего не имею против mod_accel, но мне кажется, что дело не в магии.
> P.S. Да и помоему в вашей доке mod_accel сказано про недостатки squid. Я
> тогда подумал, что вы об этом знаете, что squid тормозит backend
А я вот не знал. И хочу узнать почему. Только не надо сказок типа
"я его кое-как присобачил и все стало плохо". На уровне протоколов, pls.
--
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 =