RootConf / прямая трансляция
Igor Sysoev
is at rambler-co.ru
Wed Apr 15 13:43:22 MSD 2009
On Tue, Apr 14, 2009 at 02:35:21PM +0300, maxhl at hitline.net.ua wrote:
>
> > Презентация вчерашнего выступления Игоря Сысоева:
> > http://www.rootconf.ru/papers2009/12568.html
> >
> Классная презентация но мне кажется что рекомендованные значения могут
> вызвать панику на сервере с объёмом оперативной памяти менее 8гиг. А
> возможно сделать разбивку с рекомендациями для серверов с 1Гб, 2Гб, 4Гб,
> 6Гб. Восемь есть далеко не у всех :-(
Это значения примерно для 4G физической памяти и kmem 1.8G. 2.2G остаются
для VFS-кэша и приложений.
> kern.ipc.maxsockets=204800 (400М)
> kern.ipc.numopensockets=???
sysctl -d kern.ipc.numopensockets
kern.ipc.numopensockets: Number of open sockets
> net.inet.tcp.tcbhashsize=32768
> kern.ipc.somaxconn=4096
> kern.maxfiles=204800
> kern.openfiles=???
sysctl -d kern.openfiles
kern.openfiles: System-wide number of open files
> kern.maxfilesperproc=200000
> kern.ipc.nmbclusters=204800 (421М)
> net.inet.tcp.recvspace=8192
> net.inet.tcp.recvbuf_auto=0
> kern.ipc.nmbjumbop=192000 (796M)
> net.inet.tcp.sendspace=16384
> net.inet.tcp.sendbuf_auto=1
> net.inet.tcp.sendbuf_inc=8192
> net.inet.tcp.sendbuf_max=131072
> net.inet.tcp.maxtcptw=102400
>
> #vm.kmem_size="1536M" #amd64 2G KVA 100M kmem
> #vm.kmem_size="5G" #amd64 6G KVA 1-3.6 kmem
>
> kern.maxvnodes=100000
Это значение по умолачнию, его нужно увеличивать.
> net.inet.ip.intr_queue_maxlen=2048 #bge Вот эти настройки касаются
> только bge?
> net.isr.direct=0
Нет, это не для bge. Это для того, чтобы оценить, сколько CPU занимает
обработка TCP/IP. Вообще же, лучше использовать net.isr.direct=1.
> kern.ipc.shm_use_phys=1 # Крайне желательно для FreeBSD установить
> переменную ядра kern.ipc.shm_use_phys=1 Это запретит свопинг разделяе
> мой памяти.
>
> В докладе не упоминаются настройки рекомендованные в прошлом докладе:
> net.inet.tcp.msl=30000
> net.inet.tcp.maxtcptw=40960
> net.inet.ip.portrange.first=1024
> net.inet.ip.portrange.last=65535
> net.inet.ip.portrange.randomized=0
Для проксирования нужно.
> net.inet.tcp.nolocaltimewait=1
Как оказалось, из-за неверной реализации net.inet.tcp.nolocaltimewait
использовать вредно - лекарство хуже болезни.
> net.inet.tcp.syncache.hashsize=1024
> net.inet.tcp.syncache.bucketlimit=100
> kern.ipc.nsfbufs=10240
kern.ipc.nsfbufs на amd64 не имеет смысла.
> vm.pmap.shpgperproc=2048 #Количество единовременно-обрабатываемых потоков
> виртуальной памяти
Нет, это совсем не "потоки виртуальной памяти". Но в двух словах не объяснишь.
> options VM_KMEM_SIZE=1073741824
> options VM_KMEM_SIZE_MAX=1073741824
vm.kmem_size=1g
> options KVA_PAGES=512 #Увеличение адресного пространства ядра
Только для i386.
> options KSTACK_PAGES=8 #Увеличение пространства под
> выделяемую память
Ну и комментарий. Скорее всего не нужно.
> options MAXFILES=16384 #Максимальное количество создаваемых
> файлов
Это изменяется на лету sysctl kern.maxfiles
> options ZERO_COPY_SOCKETS #Для создания дополнительных буферов
> под копирование сокетов
Комментарий тоже хорош. Это скорее вредно, чем полезно.
> Насколько эти настройки актуальны для FreeBSD 7.2
>
> Еще заметил следующую тенденцию - при скачивании большого файла (несколько
> гигабайт) сначала минут 5 скорость высокая более 10Mбит но потом она падает
> гдето до 700К :-( и уже не поднимается. Какой то админ на промежуточном
> роутере ограничил вручную? Или что может быть причиной подобного поведения?
Нужно смотреть.
--
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list