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

Setup: Add BBR congestion control configuration #987

Draft
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

stickz
Copy link
Contributor

@stickz stickz commented Apr 23, 2023

This commit adds a feature to enable the BBR congestion control algorithm. This increases throughput of TCP connections thanks to clever engineering by Google.

@brettpetch
Copy link
Member

This will break unattended installation. Needs to have a switch that can be specified in the env file at minimum.

Some vendors that use our script may use custom kernels, so you may want to check the current congestion control algorithm first, then list the available congestion control algorithms via sysctl instead, enabling only if both those requirements are satisfied.

@stickz
Copy link
Contributor Author

stickz commented Apr 23, 2023

@brettpetch This pull request is ready for review again. I tested it on Ubuntu 22.04 LTS on ARM.

  • Added --enablebbr command line option and updated readme.
  • Added BBR_CONGESTION_CONTROL variable for env file.

The solution I used for unknowledgeable users is to check if they are running a generic Linux Kernel. An advanced user can override this feature by enabling it through the command line or env file. The kernel module is not loaded until we enable it, so we can't easily check if the feature is supported. But we do know that it's enabled by default and all generic kernel support it.

Unattended setups or custom kernels must be enabled manually. It will only prompt the user if the Linux Kernel is generic.

Copy link
Member

@brettpetch brettpetch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

needs a check to ensure that bbr is in the kernel.

setup.sh Outdated Show resolved Hide resolved
@stickz stickz force-pushed the patch-10 branch 3 times, most recently from d7b3435 to 3237afe Compare April 23, 2023 19:10
@stickz stickz requested a review from brettpetch April 23, 2023 19:11
@stickz
Copy link
Contributor Author

stickz commented Apr 23, 2023

Alright, I improved the script to check if the Linux Kernel supports BBR and FQ. It should be pretty robust now.

This commit adds a feature to enable the BBR congestion control algorithm. This increases throughput of TCP connections thanks to clever engineering by Google.
@stickz
Copy link
Contributor Author

stickz commented Apr 24, 2023

Feature is tested on Ubuntu 22.04LTS ARM64. It's perfected now to use 55-swizzin.conf to override 50-default.conf. This is required to ensure BBR Congestion Control has the proper Fair Queue Scheduler successfully enabled to avoid packet loss.

@stickz stickz marked this pull request as draft May 10, 2023 20:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants