Listen queue guestion

Bram Van Steenlandt bram at diomedia.be
Tue Sep 16 11:12:59 UTC 2014


Hi,

I had not considered the queue size in python/twisted, stupid, I know.
I was also asuming I was running into some sysctl limit because of the 
dmesg error (and the information I found online).

Now it works (the queue size is 50 by default), from what I can see/test 
it works like this:
I can set the queue size larger but setting it larger than sysctl 
kern.ipc.somaxconn has no point.
The fact that you get the dmesg message doesn't mean the sysctl is set 
too low, it's just something freebsd detects.

I think the connect/disconnectloop I was testing with just runs slower 
on the linux machine thus avoiding the problem.
On freebsd if I connect & disconnect in a loop (for testing) the number 
of connection goes up (probably because it's not really closed yet when 
I do close).

The handbook does say:
The |kern.ipc.somaxconn| sysctl(8) 
<http://www.FreeBSD.org/cgi/man.cgi?query=sysctl&sektion=8> variable 
limits the size of the listen queue for accepting new |TCP| connections.
https://www.freebsd.org/doc/handbook/configtuning-kernel-limits.html

Thx
Bram




op 16-09-14 10:08, Adrian Chadd schreef:
> Hm, ok. It's a UNIX domain socket. I kinda thought those also obeyed the sysctl.
>
> The sysctl has to be set -before- listen() is called.
>
> Also, in BSD, if the listen queue parameter to listen() is < 0, it
> defaults to the sysctl maximum.
>
>
> -a
>
>
> On 14 September 2014 23:44, Bram Van Steenlandt <bram at diomedia.be> wrote:
>> Hi,
>>
>> I use python, here the parameters are (socket.AF_UNIX,socket.SOCK_STREAM)
>>
>> Bram
>> op 14-09-14 23:05, Adrian Chadd schreef:
>>
>>> Hi!
>>>
>>> What kind of sockets is it specifically using?
>>>
>>>
>>> -a
>>>
>>>
>>> On 14 September 2014 12:27, Bram Van Steenlandt <bram at diomedia.be> wrote:
>>>> Hi,
>>>>
>>>> I'm porting an plc automation system to freebsd and while doing so I got
>>>> errors like these:
>>>> sonewconn: pcb 0xfffff8000cecc870: Listen queue overflow: 76 already in
>>>> queue awaiting acceptance
>>>>
>>>> With the help of netstat I've found the problem, 2 programs communicate
>>>> with
>>>> ipc file like sockets and the "client" was connecting too fast (it was
>>>> connecting and disconnecting in a small for loop).
>>>>
>>>> Still, on linux this worked and there will be cases where I may bump in
>>>> to
>>>> this limit again (a lot of different programs communicate with one master
>>>> program over ipc).
>>>>
>>>> I've found kern.ipc.somaxconn but this seems to be only for TCP
>>>> connections.
>>>>
>>>> Is there a sysctl or kernel parameter that allows me to set this queue a
>>>> bit
>>>> larger ?
>>>>
>>>> Thx
>>>> Bram
>>>>
>>>> _______________________________________________
>>>> freebsd-questions at freebsd.org mailing list
>>>> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
>>>> To unsubscribe, send any mail to
>>>> "freebsd-questions-unsubscribe at freebsd.org"
>>> _______________________________________________
>>> freebsd-questions at freebsd.org mailing list
>>> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
>>> To unsubscribe, send any mail to
>>> "freebsd-questions-unsubscribe at freebsd.org"
>>
> _______________________________________________
> freebsd-questions at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"



More information about the freebsd-questions mailing list