On Wednesday 16 November 2011, Stefan Fritsch wrote:
> > What I am really opposed to is that the LoadModule causes such a
> > degradation in performance.
> 
> In my quick (and maybe not that accurate) tests, the penalty caused
> by  mod_reqtimeout (1.4%) was smaller than the penalty of not
> having BufferedLogs on (2.1%). But there is no question that the
> current default 'BufferedLogs off' is better for the  majority of
> users, just the same as having reqtimeout enabled is better for
> the majority of users. Actually, RequestReadTimeout should
> probably be into the core, but none got around to moving it.

I did some more accurate benchmarks on a dual core AMD E350, which is 
slow enough that it can be saturated with a simple ab run from a fast 
machine over a 1GB/s link. The numbers are reproducible over several 
runs with less than 0.5% variation.

Requesting a zero-size file
ab -c 100 -n 100000 http://10.1.1.20:8081/zero
Trunk r1202537
Default configure, but CFLAGS=-O3
Default config, but
    StartServers             2
    MinSpareThreads         20
    MaxSpareThreads        100
    ThreadLimit            200
    ThreadsPerChild         50
    MaxRequestWorkers      600

The reqtimeout config was
RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500
if enabled

Results:

reqtimeout disabled, buffered logs off         4060     100%
mod_reqtimeout not loaded, buffered logs off   4090     100.7%
reqtimeout disabled, buffered logs on          4378     107.8%
reqtimeout enabled, buffered logs on           4299     105.9%
reqtimeout enabled, buffered logs off          3934      96.9%
reqtimeout enabled+r1202886, buffered logs off 3996      98.5%

Even without r1202886, I think the degradation would have been 
acceptable. With r1202886 it's even less of a problem.

To put the number into perspective, if I request the default 45 byte 
index.html instead, the request rate drops by approx. 16%.

Reply via email to