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

Vitaly Belenky heman777 на yandex.ru
Вт Май 31 17:56:30 MSD 2011


31.05.2011 17:05, Евгений Григоренко пишет:
> sysctl kern.maxvnodes
Спасибо!


Начал кушать, но медленно.. 2мб в секунду. В целом то хорошо - наестся 
рано или поздно. Но вот при ребуте долго будет разогреваться.. 
Что-нибудь можно сделать что-бы кэшировалось быстрее?


было
 > 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


Ставлю задачей снизить физический read до минимума.

Вопросы:
Нужно ли мне open_file_cache.max больше 10000?


Как соотносить open_file_cache и  kern.maxfilesperproc, kern.maxfiles?

Я думал что нужно open_file_cache.max * worker_processes, однако при 
значении в 15000 * 4 = 60000 не влезаю в ограничения.



>
> 31 мая 2011 г. 19:56 пользователь Vitaly Belenky <heman777 на yandex.ru
> <mailto:heman777 на yandex.ru>> написал:
>
>     Имеем веб-проект с большой посещаемостью. На проекте наличиствует
>     большое кол-во картинок.
>
>     Вопрос следующий. Есть железка на SATA, хочется оптимизировать
>     систему так, что-бы она жрала всю доступную оперативную память под
>     файловый кэшь и минимально обращалась к диску. Картинки меняются
>     редко, вернее вообще не меняются. Запись происходит крайне редко.
>
>     Описание машины
>
>     CPU: Intel(R) Xeon(R) CPU           X3450  @ 2.67GHz (2666.65-MHz
>     K8-class CPU)
>       Origin = "GenuineIntel"  Id = 0x106e5  Family = 6  Model = 1e
>     Stepping = 5
>
>     real memory  = 17179869184 (16384 MB)
>     avail memory = 16470654976 (15707 MB)
>
>     FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs
>     FreeBSD/SMP: 1 package(s) x 4 core(s) x 2 SMT threads
>
>
>     ad4: 953869MB <Seagate ST31000524NS SN11> at ata2-master UDMA100
>     SATA 3Gb/s
>
>     Настройки системы
>
>     Увеличен maxfiles и maxfilesperproc
>
>      > sysctl -a | grep files
>
>     kern.maxfiles: 1600000
>     kern.maxfilesperproc: 1500000
>
>     Патиция с картинка смонтирована с noatime
>      > cat /etc/fstab
>
>     # Device        Mountpoint    FStype    Options        Dump    Pass#
>     /dev/ad4s1b        none        swap    sw        0    0
>     /dev/ad4s1a        /        ufs    rw        1    1
>     /dev/ad4s1e        /usr        ufs    rw,noatime        2    2
>     /dev/ad4s1d        /var        ufs    rw        2    2
>     /dev/cd0        /cdrom        cd9660    ro,noauto    0    0
>
>
>     В nginx включено кэширование дескрипторов
>     open_file_cache             max=10000;
>     open_file_cache_valid       360s;
>     open_file_cache_min_uses    2;
>     open_file_cache_errors      on;
>
>     access логи выключены
>
>
>     Текущие показатели системы
>
>      > sysctl -a | grep "kern.openfiles"
>
>     kern.openfiles: 40623
>
>      > iostat -dx 1
>
>                             extended device statistics
>     device     r/s   w/s    kr/s    kw/s wait svc_t  %b
>     ad4       55.9   2.6   754.6    69.9    0  12.9  38
>                             extended device statistics
>     device     r/s   w/s    kr/s    kw/s wait svc_t  %b
>     ad4       33.0   0.0   401.5     0.0    0   7.7  25
>                             extended device statistics
>     device     r/s   w/s    kr/s    kw/s wait svc_t  %b
>     ad4       51.9   0.0   452.9     0.0    0   6.5  34
>                             extended device statistics
>     device     r/s   w/s    kr/s    kw/s wait svc_t  %b
>     ad4       64.8   5.0  1003.0    57.8    1   5.8  40
>                             extended device statistics
>     device     r/s   w/s    kr/s    kw/s wait svc_t  %b
>     ad4       34.9   0.0   400.7     0.0    1   7.5  26
>                             extended device statistics
>     device     r/s   w/s    kr/s    kw/s wait svc_t  %b
>     ad4       49.8   0.0   880.7     0.0    0   7.0  33
>                             extended device statistics
>     device     r/s   w/s    kr/s    kw/s wait svc_t  %b
>     ad4       30.9   1.0   577.9     2.0    0   6.9  21
>                             extended device statistics
>     device     r/s   w/s    kr/s    kw/s wait svc_t  %b
>     ad4       48.9   0.0   564.3     0.0    0   8.6  37
>                             extended device statistics
>     device     r/s   w/s    kr/s    kw/s wait svc_t  %b
>     ad4       25.9   0.0   404.8     0.0    0   5.7  15
>
>
>     last pid: 19320;  load averages:  0.16,  0.21,  0.18
>                           up 0+02:25:47  15:23:55
>     163 processes: 2 running, 161 sleeping
>     CPU:  0.1% user,  0.0% nice,  1.0% system,  0.0% interrupt, 98.9% idle
>     Mem: 139M Active, 4209M Inact, 1623M Wired, 216K Cache, 1285M Buf,
>     9835M Free
>     Swap: 8192M Total, 8192M Free
>
>
>     Это не очень долгий uptime, но лучшее что я видел это 6000M Inact.
>
>     Как заставить сожрать остальную память?
>
>
>
>     --
>     Best regards, Vitaly Belenky
>     tel. : 8-909-955-67-20
>     email: heman777 на yandex.ru <mailto:heman777 на yandex.ru>
>
>     _______________________________________________
>     nginx-ru mailing list
>     nginx-ru на nginx.org <mailto:nginx-ru на nginx.org>
>     http://nginx.org/mailman/listinfo/nginx-ru
>
>
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru


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



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