-
Notifications
You must be signed in to change notification settings - Fork 1
Change network qdisc #596
Merged
Merged
Change network qdisc #596
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| # Use fq instead of pfifo_fast as the default qdisc. | ||
| # | ||
| # fq paces locally generated TCP traffic at the rate the TCP stack | ||
| # computed for the socket. Data then leaves in an even stream instead of | ||
| # line-rate bursts, which are likely to overflow the small buffers of | ||
| # access points and switch ports in front of slow links (for example a | ||
| # laptop on wifi). | ||
| # | ||
| # fq also keeps a separate queue per flow and serves them in turn. When | ||
| # the local link is saturated, a single bulk transfer can no longer delay | ||
| # all other flows on the interface, as it can with the shared FIFO of | ||
| # pfifo_fast. | ||
| # | ||
| # Note: fq is meant for hosts that terminate TCP connections. On a router, | ||
| # fq_codel may be the better choice: forwarded packets have no local | ||
| # socket, so fq cannot pace them, while the CoDel part of fq_codel actively | ||
| # keeps queueing delay low. | ||
|
|
||
| net.core.default_qdisc = fq | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
“likely to overflow the small buffers of access points” contradicts our UDP measurements, where bursts of about 600 kB passed without loss. claude-opus-5.5 suggests: “which some access points (seen with Cisco) handle badly”
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm sure, UDP bursts will also overrun the buffers sooner or later and we can't help it. However with tcp we can because tcp can pace the transmit data (even CUBIC) but this is not honored by pfifo_fast. I don't agree that Cisco devices handle this badly. It does make sense to bundle packets to save air time and this is not a bug per se although overruns by badly throttled senders are more likely to happen in that case.
In any case,
fqseems to be the better choice.