How to enable specific TCP congestion algorithm in RHEL 8

Solution Verified - Updated

Environment

Red Hat Enterprise Linux 8 (RHEL8)

Issue

I would like to enable a specific congestion algorithm in my RHEL 8 machine. How can I do that? In my case, I need to have Illinois algorithm to be active.

Why I can't enable congestion algorithm illinois in RHEL8?

Resolution

  • Install the package containing extra kernel modules:
# yum install kernel-modules-extra
  • Load the required module:
    If you just want to test it once, you can load it by running following command:
# modprobe tcp_illinois
If you want to load it automatically after boot, run following command and reboot the machine after:
# echo "tcp_illinois" > /etc/modules-load.d/tcp_illinois.conf
  • Enable and activate the algorithm:
    If you want to test it once, you can enable and activate the algorithm by running following commands (assuming you just want to add the illinois algorithm as addition to the already enabled ones - by default "reno" and "cubic"):
# sysctl -w net.ipv4.tcp_allowed_congestion_control="reno cubic illinois"
# sysctl -w net.ipv4.tcp_congestion_control=illinois
- If you want to make the change permanent, add following two lines to the /etc/sysctl.conf config file:
net.ipv4.tcp_allowed_congestion_control = "reno cubic illinois"
net.ipv4.tcp_congestion_control =illinois
   and reload the sysctl:
# sysctl -p

Root Cause

In RHEL8. only two congestion algorithms are enabled by default ("cubic" and "reno"), and only two more ("bbr" and "nv") are included in kernel-core package. Remaining congestion modules are in kernel-modules-extra package, which is not installed with default installation.

To enable the extra modules and, hence, additional algorithms, you need to install the kernel-modules-extra package, and enable the algorithms included there.

The Resolution section shows steps on how to do that, for a "illinois" algorithm. You can use similar steps to enable other algorithms.

Components
Category

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.