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: bugs@httpd.apache.org
          Reporter: xiaoqia...@yeah.net
  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: bugs-unsubscr...@httpd.apache.org
For additional commands, e-mail: bugs-h...@httpd.apache.org

Reply via email to