News for hackers. Stuff that matters.
Re:I solved the embedded Chrome OS ad equation and won a Cr-48 by patio11 on Saturday December 11, 2010 @12:58AM (#1994309)
Any out-of-the-box Apache setup on, e.g., Ubuntu will, with absolute certainty, appear to crash if you subject it to several thousand pageviews in a short amount of time. KeepAlive is on by default, and that essentially amounts to turning any group of five or more interested people who share a 3 second window into denial of service attack.

This used to drive me freaking bonkers -- I was installing caching plugins, offloading static resources to other domains, tweaking the number of worker processes, etc etc. Nothing worked, and my blog regularly crashed almost every time it hit an audience larger than HN's. Turned off KeepAlive, bam, no problems since.

Re:I solved the embedded Chrome OS ad equation and won a Cr-48 by cd34 on Saturday December 11, 2010 @02:03AM (#1994391)
If keepalive fixed it, your configuration had other problems especially if you were using mpm-worker. email me at [email protected] - I'd be interested in talking further. Ubuntu and Debian distribute configs meant for home users/developers - those configs are certainly not made for production webserving.
Re:I solved the embedded Chrome OS ad equation and won a Cr-48 by ra on Saturday December 11, 2010 @05:28PM (#1995797)
You mis-understand keep-alive. Keep-alive is good and should be used. The real problem is elsewhere in your configuration.

Perhaps I should write a blog post about this.

Re:I solved the embedded Chrome OS ad equation and won a Cr-48 by jackowayed on Saturday December 11, 2010 @01:51AM (#1994383)
How hard would it be for them to make it degrade by default? ie. Use KeepAlive until it starts having heavy load, and then disable it when the load becomes a problem.
Re:I solved the embedded Chrome OS ad equation and won a Cr-48 by cd34 on Saturday December 11, 2010 @02:13AM (#1994403)
ab with 500 concurrent, no keepalives: Requests per second: 13428.16 [#/sec] (mean)

ab with 500 concurrent, keepalives: Requests per second: 14403.98 [#/sec] (mean)

Keepalives allow the browser to maintain a socket between the browser and server and request multiple objects. So, rather than having to do a connect/teardown for each object, you remove that overhead. Some versions of Apache in conjunction with php and mysql_pconnect had issues in the past that might explain the OP's issues with keepalives, but, it has piqued my curiosity. In general, keepalives should reduce communication handling and allow more throughput.