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%.