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