diff --git a/src/routes/blog/how-we-fixed-a-one-core-packet-processing-bottleneck-in-torrust-tracker/+page.svelte b/src/routes/blog/how-we-fixed-a-one-core-packet-processing-bottleneck-in-torrust-tracker/+page.svelte index 7aa20b4..18572e1 100644 --- a/src/routes/blog/how-we-fixed-a-one-core-packet-processing-bottleneck-in-torrust-tracker/+page.svelte +++ b/src/routes/blog/how-we-fixed-a-one-core-packet-processing-bottleneck-in-torrust-tracker/+page.svelte @@ -74,6 +74,29 @@ + + Clarification (updated): Disabling HTTP/3 (QUIC) on the Caddy edge proxy + was not the root-cause fix for the one-core bottleneck. It was an earlier + experiment that had no material impact on the softirq hotspot. The actual remediation was + enabling RPS/RFS packet steering. See the + Phase 2 and + Phase 3 sections below for the evidence. +

+ Protocol boundary note: Clients can connect to the edge proxy via HTTP/3 + while the proxy communicates with backend services over existing HTTP transport. Backend + native HTTP/3 support is not required to offer HTTP/3 at the edge. Whether to + enable or disable HTTP/3 at the proxy should be treated as a product/operations choice + guided by monitoring, not as a default performance lever. +

+ See + torrust-tracker-demo#31 + for the rationale on re-enabling edge HTTP/3, and + torrust-tracker#1736 + for tracking native HTTP/3 support in the tracker. +
+

What Problem We Detected

The tracker host was under sustained CPU pressure. Standard process-level checks showed @@ -149,8 +172,13 @@ HTTP1/UDP1 external status: Working`} />

- Conclusion: disabling HTTP/3 was good hygiene, but it did not change the one-core softirq - bottleneck. + Conclusion: disabling HTTP/3 did not change the one-core softirq bottleneck. This + experiment confirmed that QUIC packet processing on UDP 443 was not the driver of the + hotspot. Enabling or disabling HTTP/3 at the edge proxy should be treated as a separate + product/operations decision — see the + follow-up rationale + for re-enabling it.

Phase 3: Enable RPS/RFS

@@ -274,6 +302,16 @@ HTTP1/UDP1 external status: Working`}
  • Keep RPS/RFS enabled permanently on the current host.
  • Close the tuning scope in ISSUE-29 as completed.
  • Track capacity follow-up separately (scale-up planning in ISSUE-30).
  • +
  • + HTTP/3 at the edge proxy is a separate product/operations decision. See + torrust-tracker-demo#31 + for the rationale on re-enabling it, and + torrust-tracker#1736 + for tracking native HTTP/3 support. +
  • The practical outcome is clear: packet-path tuning fixed the single-core bottleneck, and @@ -299,6 +337,17 @@ HTTP1/UDP1 external status: Working`} >Related post: nf_conntrack overflow incident and fix +

  • + torrust-tracker-demo#31 — Re-enable edge HTTP/3 and document rationale +
  • +
  • + torrust-tracker#1736 — Document HTTP/3 support via reverse proxy and track native + HTTP/3 follow-up +