# Follow-Up: HTTP/3 Performance Observations with NGINX 1.29.3

**URL:** <https://community.nginx.org/t/follow-up-http-3-performance-observations-with-nginx-1-29-3/8469>\
**Category:** NGINX\
**Tags:** performance, quic, http3\
**Created:** [December 5, 2025, 1:54am UTC](https://community.nginx.org/t/follow-up-http-3-performance-observations-with-nginx-1-29-3/8469 "2025-12-05T01:54:17Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![villa](https://avatars.discourse-cdn.com/v4/letter/v/bc79bd/32.png) [@villa](https://community.nginx.org/u/villa)\
**Post date:** [December 5, 2025, 1:54am UTC](https://community.nginx.org/t/follow-up-http-3-performance-observations-with-nginx-1-29-3/8469/1 "2025-12-05T01:54:17Z")

</div>

References to previous posts:

- [https://community.nginx.org/t/seeking-clarification-on-http-3-performance-differences-between-nginx-1-27-5-and-1-27-4/5417/4](https://community.nginx.org/t/seeking-clarification-on-http-3-performance-differences-between-nginx-1-27-5-and-1-27-4/5417/4)

- [https://community.nginx.org/t/follow-up-http-3-performance-observations-with-nginx-1-29-1-and-1-29-2/7667](https://community.nginx.org/t/follow-up-http-3-performance-observations-with-nginx-1-29-1-and-1-29-2/7667)

We conducted HTTP/3 performance tests across NGINX versions 1.25.5 to the latest 1.29.3 under consistent network emulation conditions.

Starting from version 1.27.5, NGINX switched its QUIC congestion control algorithm from **reno** to **cubic**. While we cannot confirm whether this change is the root cause of performance differences, 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(Average of 100 runs per version, in seconds)

| 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 |
| **nginx-1.29.1** | **20.957** | **187.009** |
| **nginx-1.29.2** | **16.910** | **185.894** |
| **nginx-1.29.3** | **23.945** | **226.876** |

## Test Configuration Summary

- **nginx.conf setting:** http3\_stream\_buffer\_size 50m;

- **Network emulation (tc + netem):** limit 6000, delay 50ms, packet loss 0% / 1%

- **Test file size:** 47MB

## Additional Observation

Comparing **nginx-1.29.3** with previous versions:

- Under **no packet loss** , nginx-1.29.3 (23.945 sec) is slower than nginx-1.29.2 (16.910 sec) and nginx-1.29.1 (20.957 sec), indicating a performance regression.

- Under **1% packet loss** , nginx-1.29.3 (226.876 sec) is significantly worse than nginx-1.29.2 (185.894 sec) and nginx-1.29.1 (187.009 sec).

This suggests that the performance trend under packet loss remains problematic in versions using QUIC cubic. We still recommend that future NGINX releases provide a configuration parameter to allow users to select the QUIC congestion control algorithm based on their needs.

---

<div class="post-metadata">

**Author:** ![route443](https://avatars.discourse-cdn.com/v4/letter/r/838e76/32.png) [@route443](https://community.nginx.org/u/route443)\
**Post date:** [December 5, 2025, 4:13am UTC](https://community.nginx.org/t/follow-up-http-3-performance-observations-with-nginx-1-29-3/8469/2 "2025-12-05T04:13:56Z")

</div>

Hi @villa

You’ve raised an excellent topic! I haven’t yet compared 1.29.3 with previous vers, but as far as I remember, there haven’t been significant quic-related changes that could have such a large impact.

As for Reno vs Cubic, the root cause of the performance anomaly wasn’t the change of the congestion control algorithm, but the overly aggressive cwnd growth in Reno’s congestion control mechanism (see commit [cd5e4fa](https://github.com/nginx/nginx/commit/cd5e4fa1446dff86fafc3b6ffcc11afd527a024f)). So, to get a fair comparison of reno vs cubic, you need to measure the performance of Reno + cd5e4fa vs Cubic. In that case, Cubic should be faster.

---

<div class="post-metadata">

**Author:** ![villa](https://avatars.discourse-cdn.com/v4/letter/v/bc79bd/32.png) [@villa](https://community.nginx.org/u/villa)\
**Post date:** [December 8, 2025, 2:04am UTC](https://community.nginx.org/t/follow-up-http-3-performance-observations-with-nginx-1-29-3/8469/3 "2025-12-08T02:04:17Z")

</div>

Hi @route443 ,

I appreciate your clarification regarding Reno vs Cubic and the commit [cd5e4fa](https://github.com/nginx/nginx/commit/cd5e4fa1446dff86fafc3b6ffcc11afd527a024f). This information is extremely helpful for accurate performance comparisons.

---

<div class="post-metadata">

**Author:** ![system](https://drob5swvtjqxg.cloudfront.net/user_avatar/community.nginx.org/system/32/19_2.png) [@system](https://community.nginx.org/u/system)\
**Post date:** [January 7, 2026, 2:05am UTC](https://community.nginx.org/t/follow-up-http-3-performance-observations-with-nginx-1-29-3/8469/4 "2026-01-07T02:05:06Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
