accept() failed (53: Software caused connection abort)
Maxim Dounin
mdounin at mdounin.ru
Wed Jul 13 17:27:14 MSD 2011
Hello!
On Wed, Jul 13, 2011 at 01:41:59PM +0200, Adam PAPAI wrote:
> Maxim Dounin wrote:
> >Hello!
> >
>
> >Client closed connection before nginx was able to accept() it.
> >This may be normal (i.e. user just closed a browser page while images
> >was still loading) and may be not (i.e. nginx wasn't able to
> >accept() for a long time due to some problems and client bored
> >waiting and closed a page).
> >
> >Some number of such messages are expected to appear. High number
> >of such errors may indicate problems, try looking at listen queues
> >at first (netstat -Lan).
>
>
> Dear Maxim,
>
> When the netstat -Lan shows over:
>
> tcp4 190/0/128 127.0.0.1.9002
> tcp4 195/0/128 127.0.0.1.9001
> tcp4 181/0/128 127.0.0.1.9000
>
> It starts to throw the writev() failed (54: Connection reset by
> peer) while sending request errors.
>
> What should I increase? Any ideas? What is the real meaning of the
> maxqlen? If it the qlen is greater than maxqlen it means...?
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
net.inet.tcp.syncache.rst_on_sock_fail=0).
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.
But if you've been able to see it in netstat output - it certainly
means there is something wrong with backends. You either have to
add more backends or find out/optimize bottlenecks in existing ones.
Maxim Dounin
More information about the nginx
mailing list