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

Igor Sysoev igor на sysoev.ru
Вт Май 31 18:39:21 MSD 2011


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;


-- 
Igor Sysoev



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