add some comments about KeepAlive usage.

Seems KeepAlive spawns too many processes, so we cant use it.
This commit is contained in:
Dietmar Maurer 2011-11-10 09:21:28 +01:00
parent 3fcc9c1311
commit 9831cb2617
3 changed files with 18 additions and 5 deletions

View File

@ -21,6 +21,8 @@ use PVE::RPCEnvironment;
use Data::Dumper; # fixme: remove
# my $MaxRequestsPerChild = 200;
my $cookie_name = 'PVEAuthCookie';
my $baseuri = "/api2";
@ -465,11 +467,17 @@ my $known_methods = {
DELETE => 1,
};
my $request_count = 0;
sub handler {
my($r) = @_;
debug_msg("perl handler called");
$request_count++;
# we do not use KeepAlive, so this is not necessary
# $r->child_terminate() if $request_count >= $MaxRequestsPerChild;
my $method = $r->method;
my $clientip = $r->connection->remote_ip();

View File

@ -44,6 +44,7 @@ sub childinit {
}
sub childexit {
# BUG: seems this is not called if we do $r->child_terminate()
syslog ('info', "Finish child $$");
}

View File

@ -12,12 +12,16 @@ ServerTokens Prod
ServerAdmin root
AddDefaultCharset On
# Hint: Ajax use KeepAlive, which in effect disables MaxRequestsPerChild,
# so we need to disable KeepAlive to prevent exhaustive memory usage, or
# at least make sure that periodic updaters interval > KeepAliveTimeout
# or maybe we should set "MaxKeepAliveRequests 20"
# Hint1: Ajax use KeepAlive. We wnat that to get better performance.
# Hint2: We need to limit the number of request to avoid exhaustive
# memory usage (we still have small memory leaks).
# Apache KeepAlive in effect disables MaxRequestsPerChild,
# (max request are MaxRequestsPerChild*MaxKeepAliveRequests)
# so we implemented and additional limit in REST.pm
KeepAlive Off
# But KeepAlive spawns too many processes - so we disable that for now
KeepAlive off
MaxKeepAliveRequests 200
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE application/json