поправки к "100-200 тысяч соединений" для FreeBSD 7 ( i386 и amd64 )

MZ zuborg at advancedhosters.com
Mon Jun 2 14:13:30 MSD 2008


В вс, 01/06/2008 в 05:09 +0400, Alexey V. Karagodov пишет:
> Keywords: freebsd tcp optimization tune speed socket mbuf sendfile sysctl
> From: Сысоев Игорь Владимирович <http://www.sysoev.ru>
> Date: Mon, 1 Oct 2007 14:31:37 +0000 (UTC)
> Subject: FreeBSD для обслуживания 100-200 тысяч соединений


> ######## /usr/src/sys/i386/conf/CUSTOM 
> 
> 
> include GENERIC
сложно скопировать и почистить ? чем инклудить весь мусор


> device pf
> device pflog
> device pfsync
> device carp
> 
> 
> options ALTQ
> options ALTQ_CBQ
> options ALTQ_RED
> options ALTQ_RIO
> options ALTQ_HFSC
> options ALTQ_CDNR
> options ALTQ_PRIQ
> options ALTQ_NOPCC
> 
> 
> #options QUOTA
> options IPSEC
оригинально, [GIANT] поддержку квот выключили но ipsec оставляем, для
чего ?

> #options IPSEC_FILTERGIF
> device crypto
> device cryptodev
> 
> 
> options DEVICE_POLLING
> #options HZ=1000
> 
> 
> #options SCHED_ULE
> 
> 
> options KVA_PAGES=512
> 
> 
> options VM_KMEM_SIZE=1073741824
> options VM_KMEM_SIZE_MAX=1073741824
> 
> 
> options PANIC_REBOOT_WAIT_TIME=60
> 
> 
> ident CUSTOM
> 
> 
> 
> 
> ######## /boot/loader.conf 
> verbose_loading="YES"
> loader_logo="beastie"
> #ng_ether_load="YES"
> #linux_load="YES"
> accf_data_load="YES"
> accf_http_load="YES"
а в ядро добабавить сразу нельзя ?

> net.inet.tcp.syncache.hashsize=1024
> net.inet.tcp.syncache.bucketlimit=100
> net.inet.tcp.tcbhashsize=4096
> kern.ipc.nsfbufs=10240

тут
> vm.kmem_size=1G
без options KVA_PAGES=512 на i386 будет паника

> vm.kmem_size_max=1G
> 
> 
> ######## /etc/sysctl.conf 
> net.inet.tcp.blackhole=1
> net.inet.udp.blackhole=1


> kern.ipc.nmbclusters=262144
Зачем такой гемор, ограничения на полгига при ядерной памяти на гиг ?
Потом подымай если что..
Ставим kern.ipc.nmbclusters=0 в /boot/loader.conf и все работает.

> kern.ipc.somaxconn=4096
> kern.ipc.maxsockets=204800
> kern.maxfiles=204800
> kern.maxfilesperproc=200000
> net.inet.ip.portrange.first=1024
> net.inet.ip.portrange.last=65535
> net.inet.ip.portrange.randomized=0
> net.inet.tcp.recvspace=8192

> net.inet.tcp.sendspace=16384
Зачем юзеру спешить что-то качать, пусть понаблюдает как картинки одна
за одной возникают на странице. Особенно если он на другом континенте.
Или сервер досят сразу после загрузки ? Впечатление что автор не нашел
другого способа избежать паники от нехватки ядерной памяти.

> net.inet.tcp.maxtcptw=40960
> net.inet.tcp.msl=30000
> net.inet.tcp.syncookies=1
> net.inet.tcp.nolocaltimewait=1
> net.inet.tcp.fast_finwait2_recycle=1 
> 
> 
> 
> 
> ######## после всех мытарств, работа системы весьма порадовала. 
Для трафика до двухсот мегабит в принципе сойдут и такие настройки.

> ######## комменты только приветствуются. 
> ######## огромное пожелание к Игорю включить сей опус с поправками и
> комментариями (кои лично меня ОЧЕНЬ интересуют) в документацию на
> своём сайте. 


> ######## данные конфиги являются результатом печального опыта. если не
> указывать vm.kmem_size_max, ядру нехватит памяти, для всей этой
> красоты. 
Ядру надо увеличивать память, не вопрос. Как и уменьшать её лишнее
потребление. Но не банальным же уменьшением tcp-буфера.

> ######## успехов 



More information about the nginx-ru mailing list