[Bug 2003027] Re: fq_codel qdisc compiled but not enabled on 22.10
Robie Basak
2003027 at bugs.launchpad.net
Wed Aug 28 14:42:31 UTC 2024
Accepting for 24.04. It is unfortunate to have to change behaviour in
this way, but this seems preferable than to switch to the reported-worse
qdisc just for 24.04, and also preferable to do sooner rather than later
in 24.04's lifetime, given that the .1 release is due this week.
However, if this is important enough to make a change in a stable
release, and given that it regressed accidentally in Ubuntu, then it's
important enough to have a regression test for. Consider this a slap on
the wrist for not having included a test already. Given the above it's
not appropriate to block pending a test being added, but it should be
considered part of the necessary work to fix this properly regardless.
Please get that done to prevent this from regressing again in the
future. I filed bug 2078101 to track this.
I appreciate that it's tricky to write a test that might need a VM to
pick up kernel defaults to fully validate this, but we could at least
have an autopkgtest that ensures that /etc/sysctl.d/ contains the
expected net.core.default_qdisc setting and not any duplicate settings.
You could also include checks for anything else that is Ubuntu-specific
in there.
** Changed in: procps (Ubuntu Noble)
Status: In Progress => Fix Committed
** Tags added: verification-needed verification-needed-noble
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to procps in Ubuntu.
https://bugs.launchpad.net/bugs/2003027
Title:
fq_codel qdisc compiled but not enabled on 22.10
Status in Ubuntu:
Fix Released
Status in procps package in Ubuntu:
Fix Released
Status in The Noble Numbat:
Confirmed
Status in procps source package in Noble:
Fix Committed
Status in The Oracular Oriole:
Fix Released
Status in procps source package in Oracular:
Fix Released
Bug description:
[ Impact ]
Starting with Ubuntu 22.10, the default qdisc regressed to pfifo_fast. This is due to a change we merged from Debian, removing systemd's /usr/lib/50-default.conf file. pfifo_fast does not prevent bufferbloat issues, severely degrading networking performance on Ubuntu systems.
[ Test Plan ]
On an Ubuntu VM, check that net.core.default_qdisc is set to 'fq_codel'. `tc qdisc show` should also confirm fq_codel is being used.
halves at noble-vm:~$ sysctl net.core.default_qdisc
net.core.default_qdisc = fq_codel
halves at noble-vm:~$ tc qdisc show
qdisc noqueue 0: dev lo root refcnt 2
qdisc mq 0: dev enp5s0 root
qdisc fq_codel 0: dev enp5s0 parent :1 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64
[ Where Problems Could Occur ]
Users relying on the default pfifo_fast qdisc could see different networking behavior. Although fq_codel should be an across-the-board improvement over pfifo_fast, we could monitor network latency stats and throughput to make sure no weird regressions arise from the qdisc scheduler.
[ Other Info ]
Instead of adding a sysctl.conf file, Debian has decided to change their default kernel configs to use fq_codel. This has the disadvantage of being "hidden" from end users, instead of being a queryable setting in e.g. /etc/sysctl.d/, and all kernel documentation still refers to pfifo_fast as being the default.
Systemd's /usr/lib/50-default.conf file includes a lot of other
settings that are either overruled elsewhere (e.g. from procps) or are
entirely missing from our stable releases. Introducing a diff from
Debian to ship this file only for the net.core.default_qdisc changes
seems excessive, so having a dedicated place under procps where other
similar toggles are already present seems like the more appropriate
solution.
--
[ Original Description ]
fq_codel has been the default in ubuntu since #1436945
It is also now the default in debian. Somewhere between 22.04 and
22.10 though, it stopped being enabled by systemd? (it used to be
enabled there via a sysctl), and thus 22.10 (I tried both ubuntu
server and ubuntu studio) doesn't have it on. I rather *immediately*
noticed this huge regression (I run my ethernet at 100Mbit, and thus
immediately saw 400+ms latency) - and I hope it can be fixed in the
next release?
it can also be made the default via compiling it into the kernel as a
kernel default.
Aggh! death to fifos!
root at localhost:~# sysctl -a | grep qdisc
net.core.default_qdisc = pfifo_fast
disc pfifo_fast 0: dev eth0 parent :1 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
Sent 5250 bytes 53 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+bug/2003027/+subscriptions
More information about the foundations-bugs
mailing list