Seeking Clarification on HTTP/3 Performance Differences Between NGINX 1.27.5 and 1.27.4

Performance Regression Observed in NGINX HTTP/3 After Switching to QUIC Cubic Congestion Control?

We conducted HTTP/3 performance tests across NGINX versions 1.25.5, 1.27.4, 1.27.5, 1.28.0, and 1.29.0 under consistent network emulation conditions shown above. Starting from version 1.27.5, NGINX switched its QUIC congestion control algorithm from reno to cubic. Interestingly, we observed a significant drop in performance in versions using cubic, especially under packet loss conditions. While we are unsure whether this is a coincidence or the root cause, we suggest that future NGINX releases provide a configuration parameter allowing users to select the QUIC congestion control algorithm based on their deployment needs.

Test Results

Version No Packet Loss (sec) 1% Packet Loss (sec)
nginx-1.25.5 12.329 21.339
nginx-1.27.4 13.592 24.173
nginx-1.27.5 27.251 221.720
nginx-1.28.0 19.456 195.452
nginx-1.29.0 19.498 186.282