mod_throttle and perl issues on FreeBSD
Use this URL for reference to the problem:
http://forum.plesk.com/showthread.php?s=&threadid=23319
I'm running FreeBSD 4.9 on a P4 2.8 HT 1024MB RAM. Plesk 7.5.4 latest build.
When mod_throttle is enabled in httpd.conf, the apache error log begins to fill with errors. Originally the errors were like the ones given in the reference thread. Now the errors are like this:
httpd in free(): warning: recursive call
When mod_throttle is NOT enabled in httpd.conf, and one of our domains gets a spike in traffic (thousands of hits per hour), apache spins out of control and takes the box down with it (unless maxclients is lowered to about 100).
So we clearly need mod_throttle to help keep apache stable, but we cannot use it due to it's problems.
Here's the chain of events that I'm aware of:
1) FreeBSD Kernel is tuned similar to what voodoochile suggested in the thread. (I was not aware of it, hence why I asked him for his settings).
2) Perl is upgraded from 5.005 to 5.6.7 or something like that (the only reason this is mentioned is because I think the original errors we were getting with mod_throttle may have something to do with the perl version installed).
3) Traffic on server begins to increase steadily
4) Upgrade Plesk a few times (until 7.5.3)
5) Continued to have trouble with mod_throttle, so commented it out of httpd.conf and no longer had those problems.
6) Upgraded Perl to 5.8.7 in order to install Plesk 7.5.4 on box. Installed 7.5.4.
7) Had minor issues at least once a week with perl and different things, like apache modules and spamassassin, etc.
8) Fixed most of those issues by installing a specific perl module.
9) Found a thread that lists all modules that are (possibly) required and installed all of them
10) No problems until a huge spike in traffic hits one of our sites.
When the huge spike in traffic hit, I had maxclients set to 512 and 1000 child processes.
Server was unresponsive.
I reboot it, and watched top noticing that loads were above 100 - and was filled with httpd's.
limited maxclients to 100, and while laggy, server remained responsive. Had a hunch that mod_throttle would be handy and so I uncommented it and restarted apache. Raised maxclients to 256 (default) again, and all was well.
20 minutes later, started getting "httpd in free(): warning: recursive call" errors in the apache error_log and had to take out mod_throttle yet again (because apache becomes unresponsive).
So I left mod_throttle enabled and restarted apache. Worked fine for a bit, then started getting httpd in free errors again. Server quieted down a bit, and stopped getting those errors. But lo and behold, about 10 hours later, I started getting critical_acquire() and critical_release() errors again.
Is it possilbe that the new perl version that mod_throttle is using might be creating this problem?
If this is the case, does anyone have any solutions? I'm really starting to get frusterated with this, and as far as I know the hardware our box has in it should be able to handle quite a bit of traffic (if anyone has a rough estimate on how much traffic, that'd be nice to know as well).
Thanks for any help everyone can provide, and if you need anything from me to help you, let me know.
Jordan
[Edit]
So this 'bray' dude found something else out: http://forum.plesk.com/showthread.p...ighlight=httpd+in+free+warning+recursive+call
Apparently it's a known issue and the fix is "No idea." according to the freebsd site. Wonderful.
[/Edit]
Use this URL for reference to the problem:
http://forum.plesk.com/showthread.php?s=&threadid=23319
I'm running FreeBSD 4.9 on a P4 2.8 HT 1024MB RAM. Plesk 7.5.4 latest build.
When mod_throttle is enabled in httpd.conf, the apache error log begins to fill with errors. Originally the errors were like the ones given in the reference thread. Now the errors are like this:
httpd in free(): warning: recursive call
When mod_throttle is NOT enabled in httpd.conf, and one of our domains gets a spike in traffic (thousands of hits per hour), apache spins out of control and takes the box down with it (unless maxclients is lowered to about 100).
So we clearly need mod_throttle to help keep apache stable, but we cannot use it due to it's problems.
Here's the chain of events that I'm aware of:
1) FreeBSD Kernel is tuned similar to what voodoochile suggested in the thread. (I was not aware of it, hence why I asked him for his settings).
2) Perl is upgraded from 5.005 to 5.6.7 or something like that (the only reason this is mentioned is because I think the original errors we were getting with mod_throttle may have something to do with the perl version installed).
3) Traffic on server begins to increase steadily
4) Upgrade Plesk a few times (until 7.5.3)
5) Continued to have trouble with mod_throttle, so commented it out of httpd.conf and no longer had those problems.
6) Upgraded Perl to 5.8.7 in order to install Plesk 7.5.4 on box. Installed 7.5.4.
7) Had minor issues at least once a week with perl and different things, like apache modules and spamassassin, etc.
8) Fixed most of those issues by installing a specific perl module.
9) Found a thread that lists all modules that are (possibly) required and installed all of them
10) No problems until a huge spike in traffic hits one of our sites.
When the huge spike in traffic hit, I had maxclients set to 512 and 1000 child processes.
Server was unresponsive.
I reboot it, and watched top noticing that loads were above 100 - and was filled with httpd's.
limited maxclients to 100, and while laggy, server remained responsive. Had a hunch that mod_throttle would be handy and so I uncommented it and restarted apache. Raised maxclients to 256 (default) again, and all was well.
20 minutes later, started getting "httpd in free(): warning: recursive call" errors in the apache error_log and had to take out mod_throttle yet again (because apache becomes unresponsive).
So I left mod_throttle enabled and restarted apache. Worked fine for a bit, then started getting httpd in free errors again. Server quieted down a bit, and stopped getting those errors. But lo and behold, about 10 hours later, I started getting critical_acquire() and critical_release() errors again.
Is it possilbe that the new perl version that mod_throttle is using might be creating this problem?
If this is the case, does anyone have any solutions? I'm really starting to get frusterated with this, and as far as I know the hardware our box has in it should be able to handle quite a bit of traffic (if anyone has a rough estimate on how much traffic, that'd be nice to know as well).
Thanks for any help everyone can provide, and if you need anything from me to help you, let me know.
Jordan
[Edit]
So this 'bray' dude found something else out: http://forum.plesk.com/showthread.p...ighlight=httpd+in+free+warning+recursive+call
Apparently it's a known issue and the fix is "No idea." according to the freebsd site. Wonderful.
[/Edit]