<div><br></div><div>[This is all in a recent bknr svn hunchentoot running on opencml and sbcl on</div><div>a mac 10.6]</div><div><br></div><div><br></div>1.  Logging:<div><br><div>I've been playing with running hunchentoot under heavy loads using easy-acceptor, </div>
<div>and running against apache-bench (ab)</div><div><br></div><div>I noticed that logging to *error-output* often causes socket failures under heavy</div><div>load, at least in SLIME.  Is there a reason why with-open-file-or-console in log.lisp</div>

<div>couldn't use a NIL pathname to simply not log, and pathname=T would log</div><div>to *error-output*, which is what NIL presently means?   Now, there seems to be no </div><div>way to turn off logging (besides subclassing acceptor).</div>
<div><br></div><div><br></div><div><br></div><div>2.  Backlog in listener:</div><div><br></div><div>I found that in the start-listening method in acceptor.lisp, there is no BACKLOG</div><div>
set for usocket:socket-listen.  I think that others have pointed this out as well.</div><div>The default apache backlog seems to be 100 to 512</div><div>[1,2,3] though the default on a macintosh seems silently limited to 128 [4]. In the usocket </div>
<div>routines used by hunchentoot backlog seems to be only 5.    This seems </div>
<div>two orders of magnitude smaller than what is standard for web servers.</div><div><br></div><div>I tried putting in :BACKLOG 50 into the start-listening method in acceptor.lisp</div><div>and it eliminated most failures of ab.  Is there any reason why acceptor objects </div>
<div>shouldn't have a  new backlog slot default value in them much larger than 5, </div><div>which should be used in the  start-listening method?  </div><div><br></div><div>The appended patches implement both changes, if these suggestions are judged useful.</div>
<div>The backlog is 50.  I hope they're done correctly; I'm not experienced in submitting patches.</div><div><br></div><div>John</div><div><br></div><div><br></div><div>[1] <a href="http://groups.google.com/group/modwsgi/browse_thread/thread/b6d66d3fe5a53d2c" target="_blank">http://groups.google.com/group/modwsgi/browse_thread/thread/b6d66d3fe5a53d2c</a></div>

<div>[2] <a href="http://weblog.pigfoot.org/pigfoot/2007/07/05/whats-the-maximum-value-of-backlog-argument-in-listen2-system-call/" target="_blank">http://weblog.pigfoot.org/pigfoot/2007/07/05/whats-the-maximum-value-of-backlog-argument-in-listen2-system-call/</a></div>

<div>[3] /usr/include/apache2/mpm_common.h:#define DEFAULT_LISTENBACKLOG 511</div><div>[4] <a href="http://developer.apple.com/library/mac/#documentation/darwin/reference/manpages/man2/listen.2.html" target="_blank">http://developer.apple.com/library/mac/#documentation/darwin/reference/manpages/man2/listen.2.html</a></div>

</div>