Linux系统配置常用参数说明
更新时间:2024-06-14
本文档将列出 Linux 操作系统常用的参数配置以及相应说明。
文件句柄限制
在大流量的业务场景下,可以调整以下内核设置和内置限制,以占用部分系统内存的代价来处理更大的量。
设置 | 说明 |
---|---|
fs.file-max |
Linux 内核将分配的最大文件句柄数。通过增加该值,可以增加允许打开的最大文件数。 |
fs.inotify.max_user_watches |
系统允许的最大文件监视数。 每个监视在 32 位内核上约为 90 字节,在 64 位内核上约为 160 字节。 |
fs.aio-max-nr |
显示当前系统范围内的异步 IO 请求数。 |
fs.nr_open |
进程可分配的最大文件句柄数。 |
套接字和网络优化
设置 | 说明 |
---|---|
net.core.somaxconn |
可为任何给定侦听套接字排队的最大连接请求数传递给 listen(2) 函数的积压工作(backlog)参数值的上限。 如果积压工作参数大于 somaxconn ,则它会以静默方式截断到此限制。 |
net.core.netdev_max_backlog |
接口接收数据包的速度快于内核的处理速度时,在 INPUT 端排队的数据包的最大数量。 |
net.core.rmem_max |
接收套接字缓冲区最大大小(以字节为单位)。 |
net.core.wmem_max |
发送套接字缓冲区最大大小(以字节为单位)。 |
net.core.optmem_max |
每个套接字允许的辅助缓冲区(选项内存缓冲区)最大大小。 在少数情况下,套接字选项内存用于存储与套接字使用相关的附加结构。 |
net.ipv4.tcp_max_syn_backlog |
尚未收到连接客户端确认的最大排队连接请求数。如果超出此数量,内核将开始删除请求。 |
net.ipv4.tcp_max_tw_buckets |
系统同时容纳timewait 套接字的最大数量。 如果超过此数量,则会立即销毁time-wait套接字并显示警告消息。 |
net.ipv4.tcp_fin_timeout |
孤立连接(任何应用程序均不再引用)在本地终止之前保持 FIN_WAIT_2 状态的时间长度。 |
net.ipv4.tcp_keepalive_time |
TCP keepalive 在启用时发送keepalive 消息的频率。 |
net.ipv4.tcp_keepalive_probes |
TCP 在确定连接已中断前,发出 keepalive 探测的数量。 |
net.ipv4.tcp_keepalive_intvl |
探测发出的频率。再乘以 tcp_keepalive_probes , 等于在启动探测后终止未响应连接所需的时间。 |
net.ipv4.tcp_tw_reuse |
从协议角度看安全时,允许将TIME-WAIT 套接字用于新连接。 |
net.ipv4.ip_local_port_range |
TCP 和 UDP 流量用来选择本地端口的本地端口范围。 由两个数字组成:第一个数字是代理节点上的 TCP 和 UDP 流量允许的第一个本地端口,第二个是最后一个本地端口号。 |
net.ipv4.neigh.default.gc_thresh1 |
ARP 缓存中可能的最小项数。 如果条目数低于此设置,则不会触发垃圾回收。 |
net.ipv4.neigh.default.gc_thresh2 |
ARP 缓存中可能的最大项数(软)。 此设置可能是最重要的,因为达到这一软最大值大约 5 秒后会触发 ARP 垃圾回收。 |
net.ipv4.neigh.default.gc_thresh3 |
ARP 缓存中的最大项数(硬)。 |
net.netfilter.nf_conntrack_max |
nf_conntrack 是在 Linux 中跟踪 NAT 连接项的模块。 nf_conntrack 模块使用哈希表记录 TCP 协议的已 建立连接 记录。 nf_conntrack_max 是哈希表中的最大节点数,即,nf_conntrack 模块支持的最大连接数或连接跟踪表的大小。 |
net.netfilter.nf_conntrack_buckets |
nf_conntrack 是在 Linux 中跟踪 NAT 连接项的模块。 nf_conntrack 模块使用哈希表记录 TCP 协议的已建立连接的记录。 nf_conntrack_buckets 是哈希表的大小。 |
工作线程限制
与文件描述符限制一样,进程可以创建线程的数量受内核设置所限制。
设置 | 允许的值/间隔 | 默认 | 说明 |
---|---|---|---|
kernel.threads-max |
进程可以启动工作线程。 可创建的所有线程的最大数量均使用 kernel.threads-max 进行设置。 |
虚拟内存
以下设置可用于调整 Linux 内核虚拟内存子系统的操作以及磁盘脏数据的writeout
。
设置 | 允许的值/间隔 | 默认 | 说明 |
---|---|---|---|
vm.max_map_count |
此文件包含进程可能具有的最大内存映射区域数。 | ||
vm.vfs_cache_pressure |
此百分比值控制内核回收内存(用于缓存目录和 Inode 对象)的趋势。 | ||
vm.swappiness |
此控制用于定义内核交换内存页的积极程度。 增加值会提高积极程度,降低值会减少交换量。 值 0 指示内核不发起交换,直到可用且文件支持的页数小于区域中的高水位。 |