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

Igor Sysoev is at rambler-co.ru
Tue Oct 18 22:03:17 MSD 2005


On Tue, 18 Oct 2005, GribUser wrote:

>> А как выглядит распределение user/system/idle, когда nginx
>> подымается выше всех в top'е и ест, скажем, 15% ?
> load averages:  1.41,  2.40,  2.91
> 78 processes:  76 sleeping, 2 on cpu
> CPU states: 54.9% idle, 18.8% user, 26.2% kernel,  0.0% iowait,  0.0%
> swap
> Memory: 2047M real, 687M free, 1330M swap in use, 6113M swap free
>
>   PID USERNAME LWP PRI NICE  SIZE   RES STATE    TIME    CPU COMMAND
> 23000 nobody     1  40    0   21M   20M cpu/0   27:28 10.67% nginx
> 27454 nobody     1  59    0   20M   19M sleep   17:34 10.45% nginx
>   388 mysql     16  59    0  820M  675M sleep   21.5H  6.52% mysqld
>  4158 nobody     1  59    0   16M   15M sleep    0:56  1.99% nginx
>  4333 nobody     1  59    0   56M   38M sleep    0:11  1.11% httpd
>  4434 nobody     1  59    0   86M   68M sleep    0:31  1.11% httpd
> 27352 nobody     1  59    0   15M   14M sleep   23:38  0.86% nginx
>  4438 nobody     1  59    0   44M   26M sleep    0:03  0.81% httpd
>  4445 nobody     1  52    0   41M   22M sleep    0:01  0.72% httpd

Системное время, как и ожидалось, большое.

Я, кажется, понял, почему squid не ест процессор при проксировании
больших файлов. Я потестировал, сразу оговорюсь, старую версию squid'а -
2.4.STABLE7, и, surprise-surprise, не увидел акселерации больших
ответов. Похоже, акселератор из squid'а - немногим лучше, чем из mod_proxy.

Я не нашёл програмки, которая бы читала ответ с задержками, поэтому
собрал схему с nginx'ом, который ограничивает скорость забирания ответа
у squid'а:

   ab -> nginx -> squid -> apache.

nginx проксирует запросы на squid, не использует временные файлы,
может считать у squid'а не больше 6K и ограничивает скорость отдачи в 1K:

             limit_rate                 1k;
             proxy_pass                 http://127.0.0.1:3128/;
             proxy_header_buffer_size   2k;
             proxy_buffers              2 2k;
             proxy_busy_buffers_size    2k;
             proxy_max_temp_file_size   0;

squid настроен так:

             httpd_accel_host           127.0.0.1
             httpd_accel_port           9000
             httpd_accel_single_host    on

Ответ в 250K Апач отдал squid'у мгновенно, а вот 300K отдавал 41 секунду.


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





More information about the nginx-ru mailing list