тормозня при включённом кэшировании

Igor Sysoev is at rambler-co.ru
Mon Nov 9 13:53:02 MSK 2009


On Mon, Nov 09, 2009 at 01:40:40PM +0300, Михаил Монашёв wrote:

> Здравствуйте, Игорь.
> 
> >> > > При включении кэширования вот такая картина:
> >> > > 
> >> > > last pid: 29642;  load averages: 459.45, 178.48, 75.93 up 124+06:59:13 01:28:38
> >> > > 757 processes: 680 running, 77 sleeping
> >> > 
> >> > [...]
> >> > 
> >> > > Если закоментарить строчки
> >> > > proxy_cache_path   /opt1/favicons  levels=1:1     
> >> keys_zone=favicons:1m   max_size=1G;
> >> > > 
> >> > > proxy_cache     favicons;
> >> > > proxy_cache_key $proxy_host;
> >> > > proxy_temp_path /opt1/favicons/proxy_tmp_path;
> >> > > 
> >> > > то всё работает нормально. кусок конфига такой:
> >> > 
> >> > [...]
> >> > 
> >> > Есть мнение что это называется lock contention, и с таким 
> >> > количеством процессов счастья не будет.
> >> > 
> >> > Но возможно ты просто недодал памяти под кеш (1m это скажем так не
> >> > очень много, посмотри в error_log на предмет строчек 
> >> > "ngx_slab_alloc() failed: no memory" на уровне crit.
> >> 
> >> Я думаю, скорее второе, чем первое.
> 
> IS> Как оказалось, 500 воркеров на 8 процессорах действительно попадают в
> IS> lock contention: sched_yeild() для этого недостаточно.
> 
> Другими  словами  это  лечится  только  переходом  на  FreeBSD  8.0  с
> топологическим шедуллером? Или вообще не лечится?

На данный момент не лечится.
На 100 воркерах работает лучше. Кстати, интересно будет сделать,
на каком числе воркеров начинается contention.
Но там есть ещё проблема в резолвере - из-за воркеры падают.


-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx-ru mailing list