At Indiana University Bloomington we use Apache::SizeLimit in combination with the MaxClients setting to solve this problem, when using Apache1.
To determine a value for MaxClients, we find out how much RAM is available when everything is running EXCEPT for Apache, then divide that by 120M, and then round down and subtract 3, 4, or 5.
Then we configure Apache::SizeLimit to kill Apache children when they exceed 100M.
Also, at 5 am each morning we stop Apache, rotate the log files, and then restart Apache.
Under normal circumstances, this has solved the problem even for servers that have as many as 1,400 users with twice/thrice weekly assignments.
The only failures are usually due to inadvertent Denial of Service attacks due to deficiencies in some browsers.
Sincerely,
Bill Wheeler
WeBWorK Main Forum
frequent crashes
This forum has a limit to the number of forum postings you can make in a given time period - this is currently set at 10 posting(s) in 1 day