Tune TCP kernel queues on AlmaLinux 10 with sysctl, make the changes persistent, and verify buffer settings for better network throughput.
Introduction
This tutorial shows how to tune TCP kernel queues on AlmaLinux 10 for a dedicated server by checking the current socket buffer limits, applying safe temporary sysctl values, persisting them across reboots, and confirming the live kernel state. The focus is on the TCP queue settings that influence how much receive and send buffering the kernel can use under load.
These changes are most useful when you need to align network buffering with a workload that benefits from larger TCP queues, such as latency-sensitive services or high-throughput applications on a dedicated server. If you are also evaluating where network behavior fits into broader capacity planning, see Dedicated Server Network Latency.
Prerequisites
- An AlmaLinux 10 dedicated server
- Root access or a normal administrative user with sudo privileges
- Network access if sudo is not already available locally
Tutorial steps
Inspect the current kernel values
Start by checking the active receive and send buffer-related sysctl values. This confirms the current TCP queue limits before you change anything.
sudo sysctl net.ipv4.tcp_rmem net.ipv4.tcp_wmem net.core.rmem_max net.core.wmem_maxReview the reported values so you know the existing buffer ceiling and the TCP autotuning range.
Apply temporary TCP queue tuning
Set the kernel values in memory first. This lets you validate the effect immediately without committing the change to disk.
sudo sysctl -w net.core.rmem_max=134217728 net.core.wmem_max=134217728sudo sysctl -w net.ipv4.tcp_rmem='4096 87380 134217728'sudo sysctl -w net.ipv4.tcp_wmem='4096 65536 134217728'These values raise the maximum socket buffer sizes while keeping the minimum and default autotuning values intact.
Make the tuning persistent with sysctl
Write the same settings to a dedicated sysctl drop-in so AlmaLinux 10 loads them at boot and during sysctl reloads.
sudo tee /etc/sysctl.d/99-tcp-queue-tuning.conf >/dev/null <<'EOF'
net.core.rmem_max = 134217728
net.core.wmem_max = 134217728
net.ipv4.tcp_rmem = 4096 87380 134217728
net.ipv4.tcp_wmem = 4096 65536 134217728
EOFThe file name is chosen to keep the tuning isolated and easy to audit on the dedicated server.
Load the persistent configuration
Apply all sysctl configuration files so the new queue settings take effect from disk immediately.
sudo sysctl --systemVerification
Confirm that the live sysctl values match the intended buffer sizes after the temporary change and after reloading configuration.
sysctl net.ipv4.tcp_rmem net.ipv4.tcp_wmem net.core.rmem_max net.core.wmem_maxYou should see net.core.rmem_max and net.core.wmem_max set to 134217728, with net.ipv4.tcp_rmem and net.ipv4.tcp_wmem showing the expected three-value ranges.
Confirm that the persistent file exists and contains the expected TCP queue settings:
sudo cat /etc/sysctl.d/99-tcp-queue-tuning.confAlso confirm that the values remain in effect after loading configuration with sysctl --system by repeating the sysctl query and checking that the same values are still active.
Troubleshooting
If the values do not change, verify that you ran the commands with sudo and that the sysctl keys were entered exactly as shown. A typo in the parameter name or value format will prevent the kernel from accepting the setting.
If sysctl --system does not produce the expected result, inspect other files in /etc/sysctl.d/ and /etc/sysctl.conf for conflicting definitions that may override this tuning. On a busy dedicated server, conflicting settings are a common cause of unexpected final values.
If you want to compare this tuning with other workload-related infrastructure decisions, the storage tradeoffs in NVMe vs SATA for Dedicated Servers and workload sizing guidance in Best Dedicated Server Configuration for WooCommerce Store in 2026 may help contextualize network performance work, but they are not required for this procedure.
Rollback
To revert the TCP queue tuning, remove the persistent sysctl drop-in and reload configuration so the kernel returns to the values defined elsewhere on the system.
sudo rm -f /etc/sysctl.d/99-tcp-queue-tuning.confsudo sysctl --systemAfter rollback, run the verification command again to confirm the TCP queue settings no longer reflect the tuned values.
Conclusion
You have tuned TCP kernel queues on AlmaLinux 10 for a dedicated server, made the changes persistent with sysctl, and verified that the live buffer settings match the intended values. You can now confirm the active receive and send queue limits directly from the kernel and validate whether the tuning remains in effect after configuration reloads.

