, ,
/( )`
\ \___ / |
/- _ `-/ '
(/\/ \ \ /\
/ / | ` \
O O ) / |
`-^--'`< '
(_.) _ ) /
`.___/` /
`-----' /
<----. __ / __ \
<----|====O)))==) \) /====
<----' `--' `.__,' \
| |
\ / /\
______( (_ / \______/
,' ,-----' |
`--{__________)
Тюнинг сервера FreeBSD для надійної роботи з великим трафіком. Мережеві карти Intel (em, igb).
sysctl
Вставити в /etc/sysctl.conf:
# Безпека + зменшення навантаження при DDoS-атаках
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.graph.recvspace=8388608
net.graph.maxdgram=8388608
dev.em.0.rx_int_delay=200
dev.em.0.tx_int_delay=200
dev.em.0.rx_abs_int_delay=4000
dev.em.0.tx_abs_int_delay=4000
dev.em.0.rx_processing_limit=4096
dev.em.1.rx_int_delay=200
dev.em.1.tx_int_delay=200
dev.em.1.rx_abs_int_delay=4000
dev.em.1.tx_abs_int_delay=4000
dev.em.1.rx_processing_limit=4096
dev.igb.0.rx_processing_limit=4096
dev.igb.1.rx_processing_limit=4096
net.route.netisr_maxqlen=4096
kern.ipc.nmbclusters=400000
kern.ipc.maxsockbuf=83886080
net.inet.ip.intr_queue_maxlen=10240
net.inet6.ip6.auto_linklocal=0
net.inet6.mld.use_allow=0
net.inet.tcp.sendbuf_max=4194304
net.inet.tcp.recvbuf_max=4194304
loader.conf
Вставити в /boot/loader.conf:
# network interfaces
hw.em.rxd=4096
hw.em.txd=4096
hw.em.max_interrupt_rate=32000
hw.igb.rxd=4096
hw.igb.txd=4096
hw.igb.max_interrupt_rate=32000
# for other protocols (IP & PPPoE?)
net.isr.defaultqlimit=4096
# default outgoing interface queue length
# used by lagg etc.
net.link.ifqmaxlen=10240
#netgraph queue sizes tuning, see vmstat -z|egrep 'ITEM|NetGraph'
# net.graph.maxdata=65536
# net.graph.maxalloc=65536
net.graph.maxdata=2048
net.graph.maxalloc=4096
Різне
Дуже цікава практична стаття на цю тематику.
Вищевказана конфігурація використовується на серверах з трафіком близько 1Гб/с, 1500 клієнтів PPPoE.