Linux 内核参数优化

一、IP 与路由 / VIP 相关

复制代码
# 允许进程绑定不属于本机真实网卡的IP地址上
# 比如可以让进程绑定到VIP 
# 0 开启 1 关闭
net.ipv4.ip_nonlocal_bind = 1

# 开启内核转发,把服务器作为一台路由器使用
# 适用于容器网络,NAT网关,软路由
net.ipv4.ip_forward = 1

二、TCP TIME_WAIT 优化(高并发端口复用)

复制代码
# 允许快速重用 TIME_WAIT 状态的套接字,避免端口长时间等待,提高端口复用率
# 高并发场景必备
# 0 完全关闭,1 开启(只允许传输完数据的 TIME_WAIT 连接重用),2 强制开启(允许在更短时间内重用 TIME_WAIT 状态的端口)
net.ipv4.tcp_tw_reuse = 1

# 关闭 TIME_WAIT 快速回收
# 在linux内核 4.12被移除了
net.ipv4.tcp_tw_recycle = 0 

# 控制系统中TIME_WAIT套接字的最大数量。
# 在高并发场景避免端口被使用完
net.ipv4.tcp_max_tw_buckets=4194304 

# net.ipv4.tcp_fin_timeout   主动关闭连接的超时为30s,快速回收端口
net.ipv4.tcp_fin_timeout = 30	

三、TCP 连接队列与网卡缓冲(高并发核心)

复制代码
# TCP 全连接队列的最大长度,完成3次握手时等待应用程序来取走
# 在高并发场景直接拉满
net.core.somaxconn = 65535

# 网卡连接队列缓冲区,当内核处理TCP 3 次握手来不及时,缓冲在网卡队列里面
# 在高并发场景设当调整
net.core.netdev_max_backlog=100000

四、TCP 缓冲区与端口范围

复制代码
# net.ipv4.tcp_rmem 网卡流量接收缓冲区, net.ipv4.tcp_wmem 网卡发生流量接收缓冲区
# 每条TCP连接最少保证10240KB缓冲区,新建连接默认使用的87380KB缓冲区大小,单条连接最大使用12582912KB缓冲区
net.ipv4.tcp_rmem="10240 87380 12582912"
net.ipv4.tcp_wmem="10240 87380 12582912"

# 设置TCP和UDP的取值范围
net.ipv4.ip_local_port_range="1024 65000"

五、TCP 安全与保活

复制代码
# 防SYN攻击
# 原理是不在将未恢复ACK的客户端连接放到队列中
# 公网服务器必备
net.ipv4.tcp_syncookies = 1

# net.ipv4.tcp_keepalive_time 空闲连接5分钟开始探测,及时清理死连接
net.ipv4.tcp_keepalive_time = 300

六、文件描述符(高并发必备)

复制代码
# 整个系统可以打开的文件描述符的数量 
# 可以通过 sysctl fs.file-max 查看
# 9223372036854775807 是 64 位系统里的理论最大值,相当于 "无限" 级别.
fs.file-max=9223372036854775807

# 定义了每个进程可以打开的文件描述符的最大数量
fs.nr_open=2147483584

七、内存 / 虚拟内存 / 脏页(数据库、大模型

复制代码
# 控制单个进程可以拥有的内存映射区域的最大数量
vm.max_map_count=262144

# vm.dirty_background_ratio 当脏页占内存达到 5% 时,内核后台异步刷盘,不阻塞业务
# vm.dirty_ratio 当脏页占内存达到 15% 时,阻塞新写入,同步强制刷盘
# 适当调整这两个参数可以优化磁盘I/O性能。
vm.dirty_ratio=15
vm.dirty_background_ratio=5

八、共享内存(数据库、缓存、大模型)

复制代码
# 控制单个共享内存段的最大值和系统上可以使用的共享内存的总量。
# 在需要共享内存应用中非常有用,比如数据库,大模型,直接拉满
kernel.shmmax = 18446744073692774399
kernel.shmall = 18446744073692774399

进程 / 线程数限制

复制代码
# 系统最多能分配多大的进程 ID(PID),也间接限制了系统能跑多少个进程。
# 最大只能设置 4194304
kernel.pid_max=4194304

# 定义了进程和线程的总数
# 对于多线程应用程序,适当增加此值以支持更多的线程。
# 一般设置为内存 (GB) × 1 万~1.5 万
kernel.threads-max=27160
相关推荐
嵌入式×边缘AI:打怪升级日志4 分钟前
[特殊字符] 摄像头模块(七):编写 V4L2 设备框架
网络·网络协议
小李子呢02117 分钟前
前端八股网络浏览器---输入 URL 到页面呈现
前端·网络
里晓山16 分钟前
SOME/IP协议(上)
网络·网络协议·tcp/ip·车载系统
JSON_L19 分钟前
Laravel-Admin 自定义删除完整实现
php·laravel·laravel-admin
太理摆烂哥24 分钟前
进程调度及文件系统的管理
linux
wangl_921 小时前
Modbus TCP/IP 地址完全解析手册
网络·tcp/ip·php·modbus·kepware·kepserverex
许泽宇的技术分享1 小时前
别再把 AI Agent 当“会聊天的脚本”:Hermes Agent 源码级拆解(架构、框架、实战、趋势,一文吃透)
java·linux·网络
HalvmånEver1 小时前
MySQL事务(一)
linux·数据库·学习·mysql
%KT%1 小时前
Agent开发:自动查天气+景区推荐
linux·数据库·php
Yupureki1 小时前
《Linux网络编程》9.数据链路层原理
linux·运维·服务器·网络