Socket error (EAGAIN) at high load
Dean Banks <[email protected]> Mon, 23 Jul 2012 13:55:02 -0700
| Newsgroups | gmane.comp.web.fastcgi.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi all, I'm running an FCGI 2.4.1-based C application over a Unix domain socket behind nginx on Linux 2.6.32. At periods of high load, I get a lot of EAGAIN errors from nginx, implying that my app is not draining the receive buffer fast enough. I have a high number of FDs configured and socket buffers are SO_RCVBUF = 256960 SO_SNDBUF = 256960 It appears that reducing READABLE_UNIX_FD_DROP_DEAD_TIMEVAL from the default of 2.0 seconds may be a reasonable next step to reduce the volume of EAGAIN errors under load, but other than a "conservative" value of 2.0 and a "doesn't work" value of 0.0, I'm having a hard time picking a starting point to iterate around. As an aside, the source mentions that the timeout is required to work around a kernel bug, though without additional information it's not clear if the bug has been addressed. Is the timeout still required? Cheers, Dean