URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 91681
[ Назад ]

Исходное сообщение
"Оптимизация по-памяти FreeBSD + nginx под выдачу картинок"

Отправлено heman , 31-Май-11 15:25 
Имеем веб-проект с большой посещаемостью. На проекте наличиствует большое кол-во картинок.

Вопрос следующий. Есть железка на 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.

Как заставить сожрать остальную память?


Содержание

Сообщения в этом обсуждении
"Оптимизация по-памяти FreeBSD + nginx под выдачу картинок"
Отправлено parad , 31-Май-11 17:15 
он сам сожрет, когда это ему понадобится. сколько весит контент, какая фс?

"Оптимизация по-памяти FreeBSD + nginx под выдачу картинок"
Отправлено heman , 31-Май-11 17:58 
> он сам сожрет, когда это ему понадобится. сколько весит контент, какая фс?

Я привёл выше fstab - ufs.

Контент весит 57 Gb.



"Оптимизация по-памяти FreeBSD + nginx под выдачу картинок"
Отправлено heman , 17-Июн-11 23:10 
Что-бы FreeBSD сожрал всю память, нужно увеличть значение kern.maxvnodes.

Что-бы не было проблем с nginx open_file_cache, нужно задать worker_rlimit_nofile или добавить в стартовый скрипт nginx ulimit -n `sysctl -n kern.maxfilesperproc`