https://bz.apache.org/bugzilla/show_bug.cgi?id=69789
Bug ID: 69789
Summary: Performance regression of HTTP/2 proxy after commit
0343adf
Product: Apache httpd-2
Version: 2.4.64
Hardware: PC
OS: Linux
Status: NEW
Severity: regression
Priority: P2
Component: mod_http2
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
I am using httpd as HTTP/2 reverse proxy for backend servers. However, I have
observed that there is obvious performance regression in 2.4.64. After some
exploration, I found that this performance degradation could mainly come from
commit 0343adf.
Beside SSL configuration, here's the configuration I added on the basis of the
default configuration:
<IfModule proxy_http2_module>
SSLProxyEngine On
ProxyPass "/h2proxy" "h2://192.168.61.164"
ProxyPassReverse "/h2proxy" "https://192.168.61.164"
</IfModule>
<IfModule http2_module>
Protocols h2 h2c http/1.1
</IfModule>
I compile two versions of httpd, before 0343adf and after 0343adf. Then use a
bash script to alternately test both versions multiple times. This is the core
testing command of script:
numactl --cpunodebind=0 --membind=0 -- ./bin/httpd -k start
sleep 3
numactl --cpunodebind=1 --membind=1 -- h2load -n 30000
http://localhost/h2proxy/lists.html
./bin/httpd -k stop
The results show that the version after 0343adf is always obviously slower than
the version before 0343adf. For example:
before 0343adf:
starting benchmark...
spawning thread #0: 1 total client(s). 30000 total requests
Application protocol: h2c
progress: 10% done
progress: 20% done
progress: 30% done
progress: 40% done
progress: 50% done
progress: 60% done
progress: 70% done
progress: 80% done
progress: 90% done
progress: 100% done
finished in 316.51s, 94.78 req/s, 1.64MB/s
requests: 30000 total, 30000 started, 30000 done, 30000 succeeded, 0 failed, 0
errored, 0 timeout
status codes: 30000 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 518.83MB (544028927) total, 945.01KB (967693) headers (space savings
84.71%), 517.13MB (542250000) data
min max mean sd +/- sd
time for request: 3.37ms 879.85ms 10.54ms 8.25ms 97.68%
time for connect: 416us 416us 416us 0us 100.00%
time to 1st byte: 106.86ms 106.86ms 106.86ms 0us 100.00%
req/s : 94.78 94.78 94.78 0.00 100.00%
after 0343adf:
starting benchmark...
spawning thread #0: 1 total client(s). 30000 total requests
Application protocol: h2c
progress: 10% done
progress: 20% done
progress: 30% done
progress: 40% done
progress: 50% done
progress: 60% done
progress: 70% done
progress: 80% done
progress: 90% done
progress: 100% done
finished in 401.80s, 74.66 req/s, 1.29MB/s
requests: 30000 total, 30000 started, 30000 done, 30000 succeeded, 0 failed, 0
errored, 0 timeout
status codes: 30000 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 518.83MB (544031993) total, 946.99KB (969715) headers (space savings
84.68%), 517.13MB (542250000) data
min max mean sd +/- sd
time for request: 3.19ms 1.24s 13.38ms 21.77ms 97.91%
time for connect: 592us 592us 592us 0us 100.00%
time to 1st byte: 83.81ms 83.81ms 83.81ms 0us 100.00%
req/s : 74.66 74.66 74.66 0.00 100.00%
--
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]