Common Linux System Configuration Parameters Description
Updated at:2025-10-27
This document outlines common parameter configurations for the Linux operating system along with their explanations.
File handle limits
In high-traffic business environments, adjusting the following kernel settings and built-in limits can help manage greater traffic volumes, albeit by using a portion of system memory.
| Settings | Description |
|---|---|
fs.file-max |
The maximum number of file handles the Linux kernel can allocate. Raising this value increases the maximum number of files that can be opened concurrently. |
fs.inotify.max_user_watches |
The maximum number of file monitors the system permits. Each monitor uses about 90 bytes on a 32-bit kernel and roughly 160 bytes on a 64-bit kernel. |
fs.aio-max-nr |
Displays the current count of asynchronous I/O requests system-wide. |
fs.nr_open |
Defines the maximum number of file handles assignable to a single process. |
Socket and network optimization
| Settings | Description |
|---|---|
net.core.somaxconn |
The upper limit of the backlog parameter value passed to the listen(2) function, which represents the maximum number of queued connection requests for any given listening socket. If the backlog parameter is greater than somaxconn, it will be silently truncated to this limit. |
net.core.netdev_max_backlog |
Specifies the maximum number of packets that can queue at the INPUT end when the API receives packets faster than the kernel processes them. |
net.core.rmem_max |
The largest allowable size (in bytes) for the receive socket buffer. |
net.core.wmem_max |
The largest allowable size (in bytes) for the send socket buffer. |
net.core.optmem_max |
The maximum allowable size of the auxiliary buffer (option memory buffer) for each socket. In certain instances, socket option memory stores extra structures associated with socket usage. |
net.ipv4.tcp_max_syn_backlog |
The maximum count of queued connection requests awaiting confirmation from the client. When exceeded, the kernel begins dropping requests. |
net.ipv4.tcp_max_tw_buckets |
The maximum number of timewait sockets that the system can hold simultaneously. If this number is exceeded, time-wait sockets will be destroyed immediately and a warning message will be displayed. |
net.ipv4.tcp_fin_timeout |
The duration an orphaned connection (no longer referenced by an application) remains in the FIN_WAIT_2 state before local termination. |
net.ipv4.tcp_keepalive_time |
The frequency at which TCP keepalive sends keepalive messages when enabled. |
net.ipv4.tcp_keepalive_probes |
The number of keepalive probes sent by TCP before determining that a connection is broken. |
net.ipv4.tcp_keepalive_intvl |
The frequency at which probes are sent. When multiplied by tcp_keepalive_probes, it equals the time required to terminate an unresponsive connection after starting the probes. |
net.ipv4.tcp_tw_reuse |
Allow TIME-WAIT sockets to be reused for new connections when it is secure from a protocol perspective. |
net.ipv4.ip_local_port_range |
Defines the range of local ports used for TCP and UDP traffic. This range consists of two numbers: the starting port and the ending port available for use on the proxy node. |
net.ipv4.neigh.default.gc_thresh1 |
The minimum threshold of entries allowed in the ARP cache. Garbage collection is disabled if entries fall below this limit. |
net.ipv4.neigh.default.gc_thresh2 |
The soft limit for the maximum number of entries in the ARP cache. This setting is significant, as garbage collection is triggered approximately 5 seconds after this soft limit is reached. |
net.ipv4.neigh.default.gc_thresh3 |
The hard limit for the maximum number of entries in the ARP cache. |
net.netfilter.nf_conntrack_max |
nf_conntrack is a module in Linux that tracks NAT connection entries. The nf_conntrack module uses a hash table to record established connection records of the TCP protocol. nf_conntrack_max is the maximum number of nodes in the hash table, that is, the maximum number of connections supported by the nf_conntrack module or the size of the connection tracking table. |
net.netfilter.nf_conntrack_buckets |
nf_conntrack is a module in Linux that tracks NAT connection entries. The nf_conntrack module uses a hash table to record established connection records of the TCP protocol. nf_conntrack_buckets is the size of the hash table. |
Worker thread limits
Similar to file descriptor limits, the kernel restricts the number of threads a process can create.
| Settings | Description |
|---|---|
kernel.threads-max |
A process can start worker threads. The maximum number of all threads that can be created is set using kernel.threads-max. |
Virtual memory
The following settings can be used to adjust the operation of the Linux kernel virtual memory subsystem and the writeout of dirty disk data.
| Settings | Description |
|---|---|
vm.max_map_count |
This file specifies the upper limit on the number of memory mapping regions a process can access. |
vm.vfs_cache_pressure |
A percentage value that determines how strongly the kernel prioritizes reclaiming memory used for caching directories and Inode objects. |
vm.swappiness |
Controls the kernel’s aggressiveness in swapping memory pages. A higher value makes swapping more aggressive, while a lower value reduces swapping activity. A value of 0 means the kernel will only begin swapping when the number of available or file-backed pages dips below the zone’s high watermark. |
