Тюнинг отдачи мелких картинок

Igor Sysoev is at rambler-co.ru
Fri Oct 19 16:29:41 MSD 2007


On Fri, Oct 19, 2007 at 04:13:48PM +0400, Монашёв Михаил wrote:

> Здравствуйте.
> 
> FreeBSD 7.0-PRERELEASE
>  
> имеется следующая картина:
> 
> last pid: 20046;  load averages:  0.19,  0.20,  0.09 up 4+14:11:50  16:04:21
> 32 processes:  1 running, 31 sleeping
> CPU states:  0.5% user,  0.0% nice,  1.0% system,  2.3% interrupt, 96.2% idle
> Mem: 135M Active, 2936M Inact, 652M Wired, 184M Cache, 214M Buf, 9980K Free
> Swap: 4096M Total, 3764K Used, 4092M Free
> 
>   PID   THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
> 15901     1  -8    0 45312K 38912K biord  0   2:44  0.00% nginx
> 15900     1  -8    0 45312K 39024K biord  0   2:43  0.00% nginx
> 15903     1  -8    0 45312K 38956K biord  1   2:43  0.00% nginx
> 15898     1  -8    0 45312K 38864K biord  0   2:41  0.00% nginx
> 15902     1  -8    0 45312K 38736K biord  0   2:41  0.00% nginx
> 15899     1  -8    0 45312K 38860K biord  1   2:40  0.00% nginx
> 
> gstat показывает:
> 
>  L(q)  ops/s    r/s   kBps   ms/r    w/s   kBps   ms/w   %busy Name
>     0      8      7    116   21.1      0     26    0.6   10.1| ad4
>     2     42     41    799   19.1      0      0   10.5   48.6| ad6
>     3     33     33    504   18.4      0      0    0.1   35.2| ad8
>     0     33     33    514   21.9      0      0    9.8   35.3| ad10
>     1     38     38    560   18.9      0      0    0.1   41.3| ad12
>     0     27     26    450   27.5      0      0    0.1   33.3| ad14
> 
> Раздаётся очень много мелких картинок.
> 
> Диски хоть и недогружены, но nginx-ы все в ожидании ввода-вывода.

А если увеличить число воркеров ?

> Я знаю, какие картинки запрашивают часто и хотел бы их положить в
> свободную память. Файлуха сама почему-то заняла только 214 метров
> (214M Buf в top-е). Как можно увеличить размер этого буфера?
> Простаивает 3 Гига памяти ( 2936M Inact в top-е) :-(

2936M Inact + 184M Cache - это и есть файлы.
214M Buf - это просто mapping. Жрёт ценную KVA, которую лучше отдать
mbuf clusters/etc. Я последнее время уменьшаю его до 64M:

/boot/loader.conf:
kern.maxbcache=64M

Ухудшения не заметил.

> Или  куда  эффективнее  класть/обновлять/удалять  картинки  самому:  в
> мемкашед или в файловую систему в памяти?


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





More information about the nginx-ru mailing list