RE: nginx лучше сквида?

Igor Sysoev is at rambler-co.ru
Wed Oct 19 12:33:58 MSD 2005


On Wed, 19 Oct 2005, GribUser wrote:

>> А с каким буфером был собран squid ? И какие размеры книг - от и до ?
> 128MB я ставил, на убой, это же потолок. Книги обычно меньше метра.
> Около половины хитов идет на страницы, а не на собственно книги, там
> вообще < 100k обычно. Даунлоадеры народ юзает, но погоду они не делают,
> размеры не те.

А как называется параметр ? Я сходу ни в гугле, ни в исходниках squid'а
не нашёл.

>> Я могу ответить достаточно точно только про nginx. Приходит
>> клиент c даунлоад-мастером за файлом, допустим, 5M. nginx
>> скачивает 5М от бэкенда за доли секунды. Даунлоад-мастер
>> принимает первые 32K и закрывает соединение. Затем открывает,
>> скажем, 5 потоков, качающих этот файл с разных мест. nginx
>> все эти запросы передаёт бэкенду и снова быстро их принимает.
>> То есть, nginx принимает от бэкенда что-то около 20М. Больший
>> процент системного времени вызван тем, что всё это копируется
>> сначала Апачом в ядро, а потом nginx'ом из ядра.

> При таком раскладе апач никак не должен отставать от nginx по загрузке.
> А он отстает безнадежно. Если только я правильно понимаю принцип
> измерения загрузки процессора, конечно. Потому что system там или не
> system, но загрузка приписывается тому процессу, который к системе
> обратился. По-моему так.

Если я забираю файл непосредственно с Апача:
ab -n 500 -c 20 http://localhost:9000/5M

то top выглядит так:

CPU states:  7.5% user,  0.0% nice, 92.5% system,  0.0% interrupt,  0.0% idle
Mem: 81M Active, 61M Inact, 25M Wired, 28K Cache, 35M Buf, 82M Free
Swap: 1024M Total, 1024M Free

   PID USERNAME PRI NICE  SIZE    RES STATE    TIME   WCPU    CPU COMMAND
   458 is        48   0  1212K   788K RUN      0:18 57.74% 45.51% ab
   459 is         2   0  1712K  1248K sbwait   0:01  4.02%  3.12% httpd
   461 is        29   0  1712K  1248K RUN      0:01  3.57%  2.73% httpd
   452 is         2   0  1700K  1248K sbwait   0:01  2.56%  2.39% httpd
   455 is         2   0  1700K  1248K sbwait   0:01  2.56%  2.39% httpd
   451 is         2   0  1700K  1248K sbwait   0:01  2.56%  2.39% httpd
   464 is         2   0  1712K  1248K sbwait   0:01  2.98%  2.25% httpd
   463 is         2   0  1712K  1248K sbwait   0:01  2.91%  2.20% httpd
   453 is         2   0  1700K  1248K sbwait   0:01  2.24%  2.10% httpd
   454 is         2   0  1700K  1248K sbwait   0:01  2.19%  2.05% httpd
   460 is         2   0  1712K  1248K sbwait   0:01  2.36%  1.81% httpd

Апач в сумме набирает 30%, на ab приходится 60%, еще куда-то пропадают
10% (машина ничего не делает, кроме ab).

Как устроен учёт user/system/nice/interrupt/idle, я более или менее
представляю себе, а вот как считается время процесса, представляю
достаточно расплывчато. Я неоднократно видел на FreeBSD, как работают,
скажем, 100 Апачей, у каждого 0.00%, наверху парочка с 0.02%-0.10%,
других активных процессов нет, а user и system time по 10%.

>> 4) время обслуживания запроса в логах Апача. Я, например, не уверен,
>>     что оно было меньше секунды для больших файлов.
> И что это меняет, не понял?

Как что ? Если mod_perl отдаёт дайл-апному клиенту файл в течение минуты,
то тогда зачем вся эта схема фронтенд/бэкенд ?

> На файлах бэкенд не тормозил особо, размеры не те, секунду на отклик там
> уходило только при полном дауне, но этот случай мы не берем.

Дело не в отлике, а в том, сколько времени mod_perl занят отдачей большого
файла.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list