Есть высоконагуженный сервер на FreeBSD 7.2 на котором крутится веб сервер + nginx. В часы пик начали замечаться тормоза. Даже при попытке пинговать любой хост, вываливаются подобные сообщения:
sendto: No buffer space available
Хоть эти показатели в норме:
5854/2306/8160 mbufs in use (current/cache/total)
640/2252/2892/204800 mbuf clusters in use (current/cache/total/max)
640/1024 mbuf+clusters out of packet secondary zone in use (current/cache)
54/333/387/192000 4k (page size) jumbo clusters in use (current/cache/total/max)
0/0/0/6400 9k jumbo clusters in use (current/cache/total/max)
0/0/0/3200 16k jumbo clusters in use (current/cache/total/max)
2959K/6412K/9372K bytes allocated to network (current/cache/total)
0/0/0 requests for mbufs denied (mbufs/clusters/mbuf+clusters)
0/0/0 requests for jumbo clusters denied (4k/9k/16k)
0/0/0 sfbufs in use (current/peak/max)
0 requests for sfbufs denied
0 requests for sfbufs delayed
77059 requests for I/O initiated by sendfile
0 calls to protocol drain routinesТюнинг я уже давно делал, вот содержимое sysctl.conf:
kern.ipc.maxsockets=204800
kern.ipc.somaxconn=4096
kern.maxfiles=204800
kern.maxfilesperproc=200000
kern.ipc.nmbclusters=204800
net.inet.tcp.recvspace=8192
net.inet.tcp.recvbuf_auto=0
kern.ipc.nmbjumbop=192000
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
kern.maxvnodes=100000
net.inet.ip.intr_queue_maxlen=2048
net.isr.direct=0Помогите найти проблемму, ума не приложу, в чем еще может быть дело.
>Помогите найти проблемму, ума не приложу, в чем еще может быть дело.
>sysctl kern.ipc.maxsockbuf
systat и systat -v смотрите где затык
Та же фигня на PPPoE интерфейсахuname -a
FreeBSD QUAZIS.SNNLAN.local 8.0-STABLE FreeBSD 8.0-STABLE #10: Sat Dec 26 19:12:
28 EET 2009 root@QUAZIS.SNNLAN.local:/usr/obj/usr/src/sys/main8 i386kern.ipc.maxsockbuf: 262144
systat
/0 /1 /2 /3 /4 /5 /6 /7 /8 /9 /10
Load Average |||||||||/0% /10 /20 /30 /40 /50 /60 /70 /80 /90 /100
QuAzI firefox-bi XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
QuAzI firefox-bi XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root idle XXXXXXXXXXXXОшибок на интерфейсах не видно, по крайней мере сейчас
QUAZIS# sudo netstat -i tun1
Name Mtu Network Address Ipkts Ierrs Idrop Opkts Oerrs
Coll
nfe0 1500 <Link#1> 00:1a:4d:7f:de:a4 7922226 0 0 15088377 0
0
nfe0 1500 192.168.0.0 quazis 5839997 - - 13008534 -
-
plip0 1500 <Link#2> 0 0 0 0 0
0
lo0 16384 <Link#3> 151914 0 0 151914 0
0
lo0 16384 fe80:3::1 fe80:3::1 0 - - 0 -
-
lo0 16384 localhost ::1 0 - - 0 -
-
lo0 16384 your-net localhost 10705 - - 151893 -
-
tun0 1492 <Link#4> 40998 0 0 81376 0
0
tun0 1492 1.3.97.186/32 1.3.97.186 0 - - 3 -
-
tun1 1492 <Link#5> 1328894 0 0 1524562 0
0
tun1 1492 93.85.196.179 93.85.196.179.ppp 902 - - 1276 -
-
tap0* 1500 <Link#6> 00:bd:1a:29:00:00 0 0 0 0 0
0
vboxn 1500 <Link#7> 0a:00:27:00:00:00 1801 0 0 2257 0
0
vboxn 1500 192.168.56.0 192.168.56.1 1803 - - 1808 -
-
ng0* 1500 <Link#8> 0 0 0 0 0
0Содержимое /etc/sysctl.conf
net.inet.tcp.sendspace=131072
net.inet.tcp.recvspace=131072
net.local.stream.recvspace=65535
net.local.stream.sendspace=65535
net.inet.tcp.delayed_ack=0
net.link.bridge.pfil_onlyip=0
net.inet.ip.forwarding=1
net.inet.ip.fastforwarding=1# for QEMU network
net.link.tap.user_open=1
net.link.tap.up_on_open=1compat.linux.osrelease=2.6.16
net.graph.maxdgram=128000
net.graph.recvspace=128000Что покрутить?
>kern.ipc.maxsockbuf: 262144очень мало. поднимите в 10 раз
Спасибо, вроде помогло
Неа. Полтора суток и опять та же песня, увеличивал в 10 раз. Теперь ещё вдвое увеличил (т.е. в 20 раз относительно дефолта), но это по ходу только вопрос времени, сколько уйдёт на заполнение буферов. Как решить проблему?
>Как решить проблему?не хотите увеличивать bufferspace, уменьшайте кол-во открытых сокетов и поток данных
>
>>Как решить проблему?
>
>не хотите увеличивать bufferspace, уменьшайте кол-во открытых сокетов и поток данныхв /boot/loader.conf
# 25000 mbuf clusters = 55M
# 32768 mbuf clusters = 74M
# 65536 mbuf clusters = 144M
kern.ipc.nmbclusters="32768"net.inet.tcp.syncache.hashsize="1024"
net.inet.tcp.syncache.bucketlimit="100"
net.inet.tcp.tcbhashsize="32768"# Size of kernel memory
# on i386 kernel MUST be rebuild with:
# options KVA_PAGES=512
# options VM_KMEM_SIZE=1073741824
# options VM_KMEM_SIZE_MAX=1073741824
vm.kmem_size="512M"
vm.kmem_size_max="1G"
Задал
kern.ipc.nmbclusters="65536"
Остальные тоже приподнял, кроме VM.KMEM
Всё равно отваливается. Неделю нормально поработало и сейчас снова бажит
>Неа. Полтора суток и опять та же песня, увеличивал в 10 раз.
>Теперь ещё вдвое увеличил (т.е. в 20 раз относительно дефолта), но
>это по ходу только вопрос времени, сколько уйдёт на заполнение буферов.
>Как решить проблему?не как. эсли нагрузка много то постав кластер.
Если бы там была нагрузка, а то ж домашняя файлопомойка выпущенная в инет.