[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: диски



Alexey Bestciokov <proforg@maloletka.ru> wrote:

> AM> Alexander A. Vlasov <listreader@rambler.ru> wrote:
> >> Добрый день.

> >> По ряду причин не уверен, что это хорошая идея.
> AM> Ряд причин - в студию.

> Вначале некоторые импирически соображения.
> squid - кеширующщий прокси сервер, nginx - веб сервер с поддержкой
> проксирования. то есть предназначены для совершенно разных задач
> и хотя squid может работать в режиме rproxy это не есть его основное
> назначение - он слишком перегружен лишним (для этой задачи)
> функционалом. nginx же изначально предназначен для решения
> поставленной задачи максимально эффективно.
Готов поспорить, но утверждение в целом здравое.

> тесты:
> к сожалению сам я ни разу не использовал squid как rproxy на
> production серверах, а на синтетические тесты нет ни времени ни
> желания, так что ограничимся тестами с ab и двумя вырожденными
> случаями - отдача статического файла и некешируемого контента
> генерящегося динамически. впрочем общности это не нарушает, так как
> все остальные случаи сводятся с одному из них либо их комбинации.
Случаи слишком вырожденные. Увы.

> 1) статический файл, размер 4 кб, ab -c 1000 -n 100000
> Concurrency выше не поднимаю, так иначе у squid начинаются проблемы,
> а настраивать его дополнительно я не готов.

> squid + apache:
>       Time taken for tests:   416.201712 seconds
>       загрузка процессора при этом ~90% - squid, остальное ab
Мдя. Вот тут со сквидом что-то в консерватории нетак. Или памяти под кэш
мало или еще что-то.

> nginx:
>       Time taken for tests:   40.546765 seconds
>       процессор при этом деле делится ~ 50 на 50 между ним и nginx
между ab ? Дык, оно сильно охочее до процессора. из-за 1000 открытых сокетов
и epoll();

> 2) динамический контент, размер ~60 кб, ab -c 100 -n 1000
> Concurrency 100, так как иначе apache начинает свопится и отжирать
> слишком много ресурсов.
> squid + apache:
>       Time taken for tests:   26.724761 seconds
>       загрузка процессора ~35% squid
И тут тоже со сквидом что-то нетак.

> nginx + apache:
>       Time taken for tests:   18.190494 seconds
>       загрузка процессора ~7% squid
> выводы я думаю понятны :)
Плохо понятны. У меня получились более друге результаты.
Я мерял по сети, с соседней машины, дабы было более приближенней к ситуации.

динамический контент, ab -c 500 -n 1000, 31Kb (php+выборки из mysql на
каждый запрос) - 46 секунд. пиковая нагрузка сквида на процессор - 25%. Всё
остальное - сотня httpd и mysql. Машина юзабельна. 500 паралельных запросов
- из-за того, что система рабочая и помимо ab там толкались еще юзера.

> конфигурация:
> Squid Cache: Version 2.5.STABLE9, debian sarge, 2.6.8-1-686, настройка
> дефотная (кроме опций относящихся к режиму rproxy)
> nginx 0.1.33, всё дефолтное, epoll

Впрочем, с комбинацией ngnix + статика + ab всё понятно. ngnix отдает
статику через sendfile(), на чем выигрывает за счет минимального
контекст-свитчинга. squid же отдает статику из памяти. 

Впрочем, надо будет попробовать поднять ngnix и посмотреть, как у него с
keep-alive соединениями в сторону серверов и насколько он прожорлив до
дисков.



Reply to: