Skip to content

Instantly share code, notes, and snippets.

@krzysztofantczak
Last active June 20, 2024 16:48
Show Gist options
  • Save krzysztofantczak/54a49061788dea031c3e94c64685ae09 to your computer and use it in GitHub Desktop.
Save krzysztofantczak/54a49061788dea031c3e94c64685ae09 to your computer and use it in GitHub Desktop.
| Parameter | Description | Default Value | Recommended Value |
|----------------------------------|-----------------------------------------------------------------------------|---------------|-------------------|
| `vm.swappiness` | Controls swap space usage. | 60 | 1 |
| `vm.dirty_background_ratio` | Percentage of system memory filled with dirty pages before flushing starts. | 10 | 5 |
| `vm.dirty_ratio` | Maximum percentage of dirty pages before forced flushing. | 20 | 60 |
| `vm.dirty_expire_centisecs` | Time after which dirty pages are eligible for write-out. | 3000 | 2000 |
| `vm.dirty_writeback_centisecs` | Time between periodic write-out of dirty pages. | 500 | 100 |
| `net.core.somaxconn` | Maximum number of connections that can be queued. | 128 | 4096 |
| `net.ipv4.tcp_max_syn_backlog` | Maximum number of queued connection requests. | 1024 | 8096 |
| `net.core.netdev_max_backlog` | Maximum number of packets in the network input queue. | 1000 | 5000 |
| `net.core.rmem_max` | Maximum receive socket buffer size. | 212992 | 16777216 |
| `net.core.wmem_max` | Maximum send socket buffer size. | 212992 | 16777216 |
| `net.ipv4.ttcp_rmem` | Minimum, default, and maximum size for TCP receive buffers. | 4096 87380 6291456 | 4096 87380 16777216 |
| `net.ipv4.tcp_wmem` | Minimum, default, and maximum size for TCP send buffers. | 4096 16384 4194304 | 4096 16384 16777216 |
| `fs.file-max` | Maximum number of file descriptors. | 524288 | 1000000 |
| `fs.aio-max-nr` | Maximum number of allowed concurrent AIO requests. | 1048576 | 1048576 |
| `net.ipv4.tcp_fin_timeout` | Time TCP should wait before closing a connection. | 60 | 30 |
| `net.ipv4.tcp_tw_reuse` | Allows reuse of sockets in TIME_WAIT state. | 0 | 1 |
| `net.ipv4.ip_local_port_range` | Defines the range of local ports available. | 32768 60999 | 1024 65535 |
| `net.ipv4.tcp_syncookies` | Enables SYN cookies to protect against SYN flood attacks. | 1 | 1 |
| Parameter | Description | RHEL 7 Value | RHEL 9 Default Value | New Value | Observations |
|--------------------------------|-------------------------------------------------------------------------------------------------|---------------------|----------------------|----------------------------|------------------------------------|
| `net.core.somaxconn` | Maximum number of queued connections. | 128 | 4096 | 1024 | |
| `net.core.netdev_max_backlog` | Maximum number of packets that can be queued on the input side. | 1000 | 1000 | 5000 | |
| `net.core.rmem_max` | Maximum receive socket buffer size. | 212992 | 212992 | 16777216 | |
| `net.core.wmem_max` | Maximum send socket buffer size. | 212992 | 212992 | 16777216 | |
| `net.ipv4.tcp_rmem` | Minimum, default, and maximum size for TCP receive buffers. | 4096 87380 6291456 | 4096 131072 6291456 | 4096 87380 16777216 | |
| `net.ipv4.tcp_wmem` | Minimum, default, and maximum size for TCP send buffers. | 4096 16384 4194304 | 4096 16384 4194304 | 4096 65536 16777216 | |
| `net.ipv4.tcp_max_syn_backlog` | Maximum number of remembered connection requests which have not received an acknowledgment. | 128 | 4096 | 2048 | |
| `net.ipv4.tcp_fin_timeout` | Time TCP should wait before closing a connection. | 60 | 60 | 30 | |
| `net.ipv4.tcp_tw_reuse` | Allows reuse of sockets in the TIME-WAIT state for new connections. | 0 | 0 | 1 | |
| `fs.file-max` | Maximum number of file handles that the kernel can allocate. | 786432 | 9223372036854775807 | 2097152 | |
| `fs.nr_open` | Maximum number of file handles a process can allocate. | 1048576 | 1048576 | 1048576 | |
| `net.ipv4.ip_local_port_range` | Defines the range of port numbers that are used for outgoing connections. | 32768 61000 | 32768 60999 | 1024 65535 | |
| NIC Offloading (TSO, GSO, GRO) | Ensures NIC offloading settings are optimized for high connection loads. | Not specified | Not specified | Enable as needed using ethtool | |
| `isolcpus` | Isolates CPUs from the general scheduler, dedicating them to specific tasks. | Not set | Not set | `isolcpus=1-3` | |
| `irqbalance` | Ensures that interrupt handling is balanced across CPUs to prevent overload on a single CPU. | Enabled | Enabled | Ensure running | |
| `vm.swappiness` | Controls the tendency of the kernel to swap out inactive processes from RAM. | 30 | 30 | 10 | |
| `vm.dirty_ratio` | Maximum percentage of system memory that can be filled with dirty pages before they are written to disk. | 20 | 20 | 20 | |
| `vm.dirty_background_ratio` | Percentage of system memory that can be filled with dirty pages before background write-out starts. | 10 | 10 | 10 | |
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment