> Am 14.04.2022 um 10:19 schrieb Yann Ylavic <ylavic....@gmail.com>:
> 
> On Thu, Apr 14, 2022 at 9:12 AM Stefan Eissing <ste...@eissing.org> wrote:
>> 
>> I have the feeling we are in need of some sort of stress tests on
>> the overall child management scenarios. Offering my help.
> 
> Thanks Stefan for offering!
> 
> Say we have a MPM event configuration like this:
>    StartServers             1
>    ServerLimit              4 or 16
>    ThreadLimit              2
>    ThreadsPerChild          2
>    MinSpareThreads          2
>    MaxSpareThreads          4
>    MaxRequestWorkers        8
>    MaxConnectionsPerChild   0
> 
> The test would be to have 1 to 8 clients continuously requesting
> something that takes e.g. 1s to complete (mod_ratelimit or mod_proxy
> to a backend of yours that controls the rate?), and then issuing
> restarts simultaneously (graceful and ungraceful).
> 
> Depending on ServerLimit (4 or 16) there should (or not) be spare room
> in the scoreboard for children processes to be spawned on restart. If
> not they will have to wait for the old generation ones to exit before
> new connections get accepted, but it should still "work".
> 
> Not sure which of mod_status or the error_log is the best way to
> monitor the results..
> 
> Is something like this conceivable? Or maybe someone has a better idea?

In test/modules/core/test_002_restarts.py there is now a start of this. Invoked
specifically with:

trunk> STRESS_TEST=1 pytest -vvv -k test_core_002

this uses the config given and runs h2load with 6 clients, each using 5 
connections
over time to perform a number of total requests. Number of clients easily 
tweakable.

The test in its current form fail, bc it expects all requests to succeed. 
However, h2load
counts the remaining requests on a connection unsuccessful if the server 
closes. So, maybe
we should use another test client or count 'success' differently.

Anyway, in test/gen/apache/logs/error_log one can see how mpm_event hits it 
limits
on workers and concurrent connections. Like

" All workers are busy or dying, will shutdown 1 keep-alive connections"
or "AH03269: Too many open connections (1), not accepting new conns in this 
process"

So, we need to define how we measure `success` and what we expect/not expect to 
see
in the error log. I guess?

Kind Regards,
Stefan

> 
> 
> Cheers;
> Yann.

Reply via email to