Hi, have you considered adding the multi-accept capability to the server?
This would significantly elevate the performance in the case of a restarting server where thousands of connections arrive in a short time interval. The lack of multi-accept became apparent when running tests with 25000 local clients. Because ircd does only one accept per poll/select, the number of accepted new connections degrades at an exponential rate (the server has to poll/select before accepting a new connection and the cost of poll/select grows exponentially). The first graph exhibits that behaviour: http://schumann.cx/ircg-3.5-login-graph.png After adding two lines for multi-accept, the graph changed to: http://schumann.cx/multi-accept2.png Comparing the graphs yields the following insights: (1) The speed at which the total number of logins grows is almost linear (not an e-function anymore). (2) The number of new connections per three seconds is much more stable and stays constantly high (no visible exponential degression). (3) 25000 connections are handled in <140 time units, instead of >500. And all that with a two-line change. Please ignore this email, if multi-accept was already added to the CVS version. At the time of writing, coder-com.undernet.org is unfortunately not accessible. Thanks for your attention. - Sascha Experience IRCG http://schumann.cx/ http://schumann.cx/ircg