https://bz.apache.org/bugzilla/show_bug.cgi?id=53555

--- Comment #60 from Stefan Fritsch <[email protected]> ---
(In reply to Thomas Jarosch from comment #59)
> the patch from #55 seems to make things scale a lot better.
> Also the status output is very helpful.

Glad to hear that and thanks for testing it.

> As you can see, there are still processes from "old gen" after one hour.
> This is due to long running HTTP CONNECT requests to google / dropbox / etc.

There is no way to determine if such connections can be "safely" interrupted or
if they are in the middle of a long download.

> 
> Probably GracefulShutdownTimeout will help here, may be
> having a default value of one hour might make sense
> for httpd in general?

Currently the children won't honor GracefulShutdownTimeout. But that should be
added.

> As you can see, there was plenty of room in the scoreboard now,
> but the process list slots were used up by old processes
> serving just a handful of connections.
> 
> 
> One option would be to increase ServerLimit to let's say 128,
> but that also raises the resource limits during normal operation.
> If I raise ServerLimit too much, I have to lower the thread count again.
> Sounds a bit like the prefork mpm...

During normal operation, the number of threads will be limited by
MaxRequestWorkers. The idea of my patch is that you can increase Serverlimit
quite a bit without using too many ressources. The processes serving old
connections should terminate most of their threads and free most of their
memory, so the resource usage should not be too much. But it of course depends
on how may old connections are still open.

> Another option would be to add a config setting to ignore
> processes for the ServerLimit calculation if they are
> in graceful shutdown mode. They probably don't consume
> a lot of resources and we can have a GracefulShutdownTimeout
> of one hour to expire them, too.

You are confusing ServerLimit with MaxRequestWorkers here. While the latter is
a number of threads and not processes, it does what you think ServerLimit
should do.

> Third option (preferred one): Have an own GracefulShutdownLimit
> that's separate from ServerLimit. If we have too many processes,
> start killing of oldest process from the graceful shutdown list.
> Process in graceful shutdown mode don't count for ServerLimit.

Yes, we could do that, too. But first I need something like
GracefulShutdownTimeout to work for the old child processes.


If you have any more experiences with the patch I am certainly interested. Even
if it has simply run for some time without (new) bugs exposed.

Cheers,
Stefan

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to