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