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