Re: Слишком часто "No buffer space available"

Igor Sysoev is at rambler-co.ru
Mon Nov 21 16:58:53 MSK 2005


On Mon, 21 Nov 2005, Andrey N. Oktyabrski wrote:

> Igor Sysoev wrote:
>>> IS> >На нагруженой системе ( банерка)
>>> IS> >практически тысячами за сутки лезут в error.log приведеные ниже 
>>> ошибки.
>>> IS> >2005/11/21 09:54:19 [alert] 66483#0: *70837247 socket() failed (55: 
>>> No
>>> IS> >buffer space available) while connecting to upstream ...
>>> IS> Если OS - FreeBSD, то что показывает
>>> IS> netstat -m
>>> IS> и
>>> IS> vmstat -z | egrep 'socket|tcpcb'
>>> IS> ?
>>> Да FreeBSD 6.0
>>> [werewolf:~]# netstat -m
>>> 3178/1142/4320 mbufs in use (current/cache/total)
>>> 1727/807/2534/25600 mbuf clusters in use (current/cache/total/max)
>>> 306/459/6656 sfbufs in use (current/peak/max)
>>> 4248K/1899K/6148K bytes allocated to network (current/cache/total)
>>> 0 requests for sfbufs denied
>>> 0 requests for sfbufs delayed
>>> 13240 requests for I/O initiated by sendfile
>>> 3072 calls to protocol drain routines
>>> 
>>> [werewolf:~]# vmstat -z | egrep 'socket|tcpcb'
>>> socket:          356,    12331,    9839,    556, 148352402
>>> tcpcb:           460,    12328,    9577,    583, 118185270
>>> 
>>> В какую сторону копать?
>> 
>> Это странно. Сокетов вроде хватает: 9839+556 < 12331.
>> mbuf'ов тоже вроде хватает.
> Такой вопрос мне уже где-то попадался не очень давно. Кажется в freebsddiary 
> (freebsd.rambler.ru/index_ukr.html - здесь архив). Но ответ не помню - был ли 
> он там вообще? Тоже freebsd, сильно нагруженная, тоже netstat -m никакого 
> криминала не показывал.

Если socket() возвращает "No buffer space available", то mbuf'ов, как
правило, хватает, а не хватает socket'ов или tcpcb. Увеличивается
в /boot/loader.conf примерно так:
kern.ipc.maxsockets="32768"
Но в данном случае KVA под socket/tcpcb хватает. Возможно, не хватает
физической памяти, но как это посмотреть, я не знаю.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list