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

Alexey V. Karagodov kav at karagodov.name
Mon Jun 2 14:55:41 MSD 2008


On 02.06.2008, at 14:13, MZ wrote:

> В вс, 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 оставляем, для
> чего ?
да, для этих примеров надо было  
почистить файлики, согласен
кстати, если 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 будет паника
это я вроде включал в конфиг ядра 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 и все  
> работает.
что здесь означает 0 ?

>
>
>> 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
> Зачем юзеру спешить что-то качать,  
> пусть понаблюдает как картинки одна
> за одной возникают на странице.  
> Особенно если он на другом континенте.
> Или сервер досят сразу после  
> загрузки ? Впечатление что автор не  
> нашел
> другого способа избежать паники от  
> нехватки ядерной памяти.
приступ паранойи был, вот и уменьшил
сколько рекомендуете поставить? сенд -  
256К или 512К ? страницы у нас в среднем  
такие
>
>
>> 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
>>
>>
>>
>>
>> ######## после всех мытарств, работа  
>> системы весьма порадовала.
> Для трафика до двухсот мегабит в  
> принципе сойдут и такие настройки.
ваши рекомендации? пол гигабита,  
гигабит, 5, 10 гигабит
>
>
>> ######## комменты только приветствуются.
>> ######## огромное пожелание к Игорю  
>> включить сей опус с поправками и
>> комментариями (кои лично меня ОЧЕНЬ  
>> интересуют) в документацию на
>> своём сайте.
>
>
>> ######## данные конфиги являются  
>> результатом печального опыта. если не
>> указывать vm.kmem_size_max, ядру нехватит  
>> памяти, для всей этой
>> красоты.
> Ядру надо увеличивать память, не  
> вопрос. Как и уменьшать её лишнее
> потребление. Но не банальным же  
> уменьшением tcp-буфера.
если "почистить" GENERIC, то много памяти  
не выиграешь. по сравнению с тем  
гимором, который можно получить
что там такого ужасного есть в GENERIC?  
debug_symbols ? лучше пусть будут
>
>
>> ######## успехов
>



More information about the nginx-ru mailing list