Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

linux: tcp congestion and optimizations #39951

Closed
tetsumaki opened this issue Oct 14, 2022 · 8 comments
Closed

linux: tcp congestion and optimizations #39951

tetsumaki opened this issue Oct 14, 2022 · 8 comments
Labels
question Further information is requested

Comments

@tetsumaki
Copy link

tetsumaki commented Oct 14, 2022

Hello everyone,

I've been using Void Linux for a long time now, and I found that the kernel was not optimized in an optimal way.

Void Linux uses the following settings:

net.ipv4.tcp_available_congestion_control = reno
net.core.default_qdisc = pfifo_fast
net.ipv4.tcp_congestion_control = reno

Most distributions (Rocky/Arch) use the following settings:

net.ipv4.tcp_available_congestion_control = cubic bbr
net.core.default_qdisc = fq_codel
net.ipv4.tcp_congestion_control = cubic

Alpine use the following settings:

net.ipv4.tcp_available_congestion_control = reno cubic
net.core.default_qdisc = pfifo_fast
net.ipv4.tcp_congestion_control = cubic

I think the best setting though is this (Rocky/Arch):

net.ipv4.tcp_available_congestion_control = cubic bbr
net.core.default_qdisc = fq_codel
net.ipv4.tcp_congestion_control = cubic

BBR is very good, but still in alpha, you have to give the user the choice to apply it.

Whatever happens, the kernel should be optimized, and the user should be allowed to change via sysctl.

The discussion is open (fq/fq_codel/sch_fq/cak, reno/bbr and others optimizations).

My english is not perfect ;)

Some links :

@sgn
Copy link
Member

sgn commented Oct 14, 2022

BBR is very good, but still in alpha, you have to give the user the choice to apply it.

Whatever happens, the kernel should be optimized,
and the user should be allowed to change via sysctl,
which is not the case now.

What is your problem when you're changing?

# modprobe tcp_bbr
# sysctl -w net.ipv4.tcp_congestion_control=bbr

works for me

@sgn sgn added the question Further information is requested label Oct 14, 2022
@tetsumaki
Copy link
Author

Hi, I think the default configuration should be changed to use cubic and not reno.

@sgn
Copy link
Member

sgn commented Oct 14, 2022

If you want to do it automatically at boot:

# cat /etc/modules-load.d/tcp-congestion.conf
tcp_bbr
# cat /etc/sysctl.d/tcp-congestion.conf
net.ipv4.tcp_available_congestion_control=bbr

Hi, I think the default configuration should be changed to use cubic and not reno.

That's subjective. You have the option to change to anything you want.

@tetsumaki
Copy link
Author

Yes, i already use fq_codel / bbr.
I'm talking about the default configuration.

@sgn
Copy link
Member

sgn commented Oct 14, 2022

Yes, i already use fq_codel / bbr. I'm talking about the default configuration.

I don't understand, your first message is "Whatever happens, the kernel should be optimized, and the user should be allowed to change via sysctl."?

@tetsumaki
Copy link
Author

Yes, i already use fq_codel / bbr. I'm talking about the default configuration.

I don't understand, your first message is "Whatever happens, the kernel should be optimized, and the user should be allowed to change via sysctl."?

This is a bad translation, my bad.
And the module was not loaded, so it was not visible. on my paste.

@sgn
Copy link
Member

sgn commented Oct 17, 2022

I changed congestion control to cubic, it will available through new linux5.19 and linux6.0
Other kernels will follow suites.

@sgn sgn closed this as completed Oct 17, 2022
@dtaht
Copy link

dtaht commented Nov 30, 2022

did you change the qdisc to fq_codel?

If boxes like this have sufficient horsepower, cake is actually the best thing going (IMHO, being one of the authors of both)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants