Tani Hosokawa пишет:
Under high load, unless you build a dedicated acceptor thread you will
find that only allowing a listen backlog of 10 connections will cause
lots of attempted connections to simply be dropped if you have any
significant amount of processing to do per request. The reason I put
1024 in there is all implementations that I know of silently truncate
the backlog parameter to the system's maximum. The reason I don't use
SOMAXCONN is some OS (older Solaris for sure) are incorrect for backward
compatibility reasons, and other OS are incorrect because the actual
setting is dynamically tunable via sysctl.
--- http.c.old 2008-02-26 12:30:45.000000000 -0800
+++ http.c 2008-02-26 12:33:54.000000000 -0800
@@ -2002,7 +2002,7 @@
if ((fd = bind_socket(address, port)) == -1)
return (-1);
- if (listen(fd, 10) == -1) {
+ if (listen(fd, 1024) == -1) {
event_warn("%s: listen", __func__);
EVUTIL_CLOSESOCKET(fd);
return (-1);
As POSIX requires SOMAXCONN to be defined in sys/socket.h it is safe to
use this value or define some constant in configure script, that detects
SOMAXCONN definition. Also in old Solaris systems backlog was limited
to 5.
_______________________________________________
Libevent-users mailing list
Libevent-users@monkey.org
http://monkeymail.org/mailman/listinfo/libevent-users