Linux
实例常用内核参数介绍
说明“ 初始化配置 ” 项为 “-” 的参数项,均保持官方镜像默认配置。使用 sysctl -w 命令配置为临时生效,写入 /etc/sysctl.conf 配置永久生效。常用永久生效办法是:写入 /etc/sysctl.conf 后使用 sysctl -p 使修改生效;这样系统重启也不会失效。
网络类
参数 | 说明 | 初始化配置 |
---|---|---|
net.ipv4.tcp_tw_recycle
|
该参数用于快速回收 TIME_WAIT 连接。 关闭时,内核不检查 包的时间戳。开启时 则会进行检查。 不建 议开启该参数,在时 间戳非单调增长的情 况下,会引起丢包问 题,高版本内核已经
移除了该参数。
| 0 |
net.core.somaxconn
|
对应三次握手结束, 还没有 accept
队 列时的 establish 状态。accept
队列 较多则说明服务端 accept 效率不高, 或短时间内突发了大 量新建连接。该值过
小会导致服务器收到 syn 不回包,是由于 somaxconn 表满而 删除新建的 syn
连 接引起。若为高并发 业务,则可尝试增大 该值,但有可能增大 延迟。
| 128 |
net.ipv4.tcp_max_syn_backlog
|
对应半连接的上限, 曾用来防御常见的 synflood 攻击,但 当tcp_syncookies=1
时半连接可超过该上 限。
| 128 |
net.ipv4.tcp_syncookies
|
对应开启
SYN Cookies,表示启用
Cookies
来处理, 可防范部分 SYN
攻
击,当出现
SYN
等 待队列溢出时也可继 续连接。但开启后会 使用 SHA1
验证 Cookies,理论上会 增大 CPU
使用率。
| 1 |
net.core.rmem_default net.core.rmem_max
net.ipv4.tcp_mem net.ipv4.tcp_rmem
|
这些参数配置了数据 接收的缓存大小。配 置过大容易造成内存 资源浪费,过小则会 导致丢包。建议判断 自身业务是否属于高 并发连接或少并发高 吞吐量情形,进行优 化配置。rmem_default 的 理论最优配置策略为 带宽/RTT
积,其配 置会覆盖 tcp_rmem, tcp_rmem 不单独配 置。rmem_max
配置 约rmem_default 的
5 倍。tcp_mem
为总
的
TCP
占用内存, 一般由 OS
自动配置 为 CVM
可用内存的 3/32、
1/8
或
3/16
, tcp_mem 及 rmem_default 也
决定了最大并发链接 数。
|
rmem_default=655360
rmem_max=3276800
|
net.core.wmem_default net.core.wmem_max
net.ipv4.tcp_wmem
|
这些参数用于配置数 据发送缓存,腾讯云 平台上数据发送通常 不会出现瓶颈,可不 做配置
| - |
net.ipv4.tcp_keepalive_intvl
net.ipv4.tcp_keepalive_probes
net.ipv4.tcp_keepalive_time
|
这些参数与
TCP KeepAlive 有关,
默认为
75/9/7200
。 表示某个 TCP
连接
在空闲
7200
秒后,内 核才发起探测,探测9 次(每次75
秒)不成 功,内核才发送 RST。对服务器而 言,默认值比较大, 可结合业务调整到 30/3/1800。
| - |
net.ipv4.ip_local_port_range
|
配置可用端口的范
围,请按需调整。
| - |
tcp_tw_reuse
|
该参数允许将
TIME- WAIT 状态的
socket
用于新的 TCP 连接。对快速重
启动某些占用固定端 口的链接有帮助,但 基于 NAT
网络有潜 在的隐患,高版本内 核变为0/1/2
三个 值,并配置为2
。
| |
net.ipv4.ip_forward
net.ipv6.conf.all.forwarding
|
IP
转发功能,若用 于 docker
的路由
转发场景可将其配置 为1
。
| 0 |
net.ipv4.conf.default.rp_filter
|
该参数为网卡对接收 到的数据包进行反向 路由验证的规则,可 配置为0/1/2
。根据 RFC3704建议,推荐 设置为1
,打开严格反 向路由验证,可防止 部分 DDos
攻击及防 止 IP Spoofing 等。
| - |
net.ipv4.conf.default.accept_source_route
|
根据
CentOS
官网 建议,默认不允许接 受含有源路由信息的
IP
包。
| 0 |
net.ipv4.conf.all.promote_secondaries
net.ipv4.conf.default.promote_secondaries
|
当主
IP
地址被删除 时,第二 IP
地址是 否成为新的主 IP
地
址。
| 1 |
net.ipv6.neigh.default.gc_thresh3
net.ipv4.neigh.default.gc_thresh3
|
保存在
ARP
高速缓 存中的最多记录的限 制,一旦高速缓存中 的数目高于设定值, 垃圾收集器将马上运 行。
| 4096 |