Re: Оптимизация по-памяти FreeBSD + nginx под выдачу картинок

Vitaly Belenky heman777 на yandex.ru
Вт Май 31 23:36:25 MSD 2011


Спасибо, всё получилось.


 > find /path/to/images -exec cat {}>  /dev/null \;

Приятная штука :)


Съел всю память(ну даже без этой команды), оставил 420мб, больше не 
хочет. Вопрос теперь нужно ли уменьшать kern.maxvnodes что-бы не улетать 
в свап или можно оставить как есть?


 > sysctl -a | grep vnode
kern.maxvnodes: 1500000
kern.minvnodes: 83200
vm.stats.vm.v_vnodepgsout: 0
vm.stats.vm.v_vnodepgsin: 19316
vm.stats.vm.v_vnodeout: 0
vm.stats.vm.v_vnodein: 2326
vfs.freevnodes: 83200
vfs.wantfreevnodes: 83200
vfs.numvnodes: 835387
debug.sizeof.vnode: 472


Mem: 218M Active, 12G Inact, 2487M Wired, 181M Cache, 1643M Buf, 420M Free



31.05.2011 18:39, Igor Sysoev пишет:
> On Tue, May 31, 2011 at 05:56:30PM +0400, Vitaly Belenky wrote:
>> 31.05.2011 17:05, Евгений Григоренко пишет:
>>> sysctl kern.maxvnodes
>> Спасибо!
>>
>>
>> Начал кушать, но медленно.. 2мб в секунду. В целом то хорошо - наестся
>> рано или поздно. Но вот при ребуте долго будет разогреваться..
>> Что-нибудь можно сделать что-бы кэшировалось быстрее?
>
> find /path/to/images -exec cat {}>  /dev/null \;
>
>> было
>>   >  sysctl kern.maxvnodes
>> kern.maxvnodes: 332801
>>   >  sysctl vfs.numvnodes
>> vfs.numvnodes: 291095
>>
>>
>> стало
>>   >  sysctl kern.maxvnodes
>> kern.maxvnodes: 1500000
>>   >  sysctl  vfs.numvnodes
>> vfs.numvnodes: 340071
>>
>>
>>
>>
>> Ещё вопрос по настройкам open_file_cache
>>       open_file_cache             max=10000;
>>       open_file_cache_valid       360s;
>>       open_file_cache_min_uses    2;
>>       open_file_cache_errors      on;
>>
>>
>> С такой конфигурацией, max больше 10000 поставить не получается. Через
>> 10-15 минут работы в логах nginx получаю "Too many open files". nginx
>> запущен с конфигурацией worker_processes  4;
>>
>>       kern.maxfiles: 1600000
>>       kern.maxfilesperproc: 1500000
>>
>>
>>   >  sysctl -a | grep "kern.openfiles"
>> kern.openfiles: 17595
>
> Если nginx запускается на старте, то kern.maxfilesperproc небольшой
> и установка большого значения в /etc/sysctl.conf не помогает.
> Я в стартовом скрипте nginx'а ставлю
>
> ulimit -n `sysctl -n kern.maxfilesperproc`
>
> Ещё вариант:
> worker_rlimit_nofile  20000;
>
>


-- 
Best regards, Vitaly Belenky
tel. : 8-909-955-67-20
email: heman777 на yandex.ru



Подробная информация о списке рассылки nginx-ru