accept() failed (53: Software caused connection abort) [SOLVED]
wooh at wooh.hu
Thu Jul 14 13:28:23 MSD 2011
Maxim Dounin wrote:
> On Wed, Jul 13, 2011 at 04:10:52PM +0200, Adam PAPAI wrote:
>> Maxim Dounin wrote:
>>> Maxqlen is maximum listen socket queue length (the queue of
>>> connections completed handshake but not yet accept()'ed by
>>> application), and FreeBSD will reset new connections if it's
>>> exhausted (or will just drop them if you have
>>> If you see qlen greater than maxqlen it means that your app can't
>>> cope with load. If this happens for a fraction of a second due to
>>> connection bursts - this may be ok and you just need to increase
>>> queue length to compensate bursts.
>> The question is now: how to increase the queue length under FreeBSD.
>> I cannot find the config value in sysctl.
> System limit is kern.ipc.somaxconn. But as far as I remember you
> have 4096 queue for nginx, so it looks like you've already tuned
> it. :)
> The question is how to tune it in your backend, but there is no
> simple answer: this depends on backend. E.g. php-fpm should use
> kern.ipc.somaxconn as seen on process startup by default and have
> an option ("backlog") to tune it.
> But again: as long as you've been able to see overflows, just
> increasing listen queue isn't likely to help. You have to add
> more backends.
> Maxim Dounin
It seems after 2 days investigation, we've found the main problem: I/O.
After rewriting the PHP code to avoid file based session handling, to
memory based session handling everything started to work without error
It seems the I/O influences heavily the web applications, even if it's
only a small and fast PHP code.
Grapes Communication Ltd.
E-mail: wooh at wooh.hu
More information about the nginx