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