Switch TCP congestion control to BBR with fq pacing
Cubic keeps pushing until packets drop, which stands queues up in the path on fast links. BBR paces to its estimate of bottleneck bandwidth and minimum RTT instead, cutting queueing latency while keeping throughput. fq is the qdisc BBR is built to pace through. tcp_bbr and sch_fq are modules in every kernel Omarchy ships and autoload when the sysctls are set. The migration re-applies the shipped file so new connections switch without a reboot, no-ops once the live values match, and flags a reboot if applying fails. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
93d9d0c859
commit
9246647071
2 files changed
+17
No files matched your search
@@ -1,6 +1,12 @@
|
||||
# Solve common flakiness with SSH (MTU discovery on flaky links).
|
||||
net.ipv4.tcp_mtu_probing=1
|
||||
|
||||
# BBR estimates bottleneck bandwidth and minimum RTT and paces to them, where
|
||||
# cubic keeps pushing until packets drop. That cuts queueing latency
|
||||
# (bufferbloat) on fast links. fq is the qdisc BBR is built to pace through.
|
||||
net.core.default_qdisc=fq
|
||||
net.ipv4.tcp_congestion_control=bbr
|
||||
|
||||
# Tune reclaim for swap on zram, which is orders of magnitude faster than the
|
||||
# disk swapfile these defaults assume.
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
echo "Switch TCP congestion control to BBR with fq pacing"
|
||||
|
||||
# Boot applies the shipped file regardless; this only makes new connections
|
||||
# use BBR now. Setting the sysctls autoloads tcp_bbr and sch_fq. Qdiscs
|
||||
# already attached to interfaces stay until they are recreated, normally at
|
||||
# reboot.
|
||||
if [[ $(sysctl -n net.ipv4.tcp_congestion_control) == "bbr" && $(sysctl -n net.core.default_qdisc) == "fq" ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
sudo sysctl -p /etc/sysctl.d/99-omarchy-sysctl.conf >/dev/null || omarchy-state set reboot-required
|
||||
Reference in new issue
Block a user