内核调优
vm.max_map_count = 262144
限制一个进程可以拥有的VMA(虚拟内存区域)的数量。
kernel.msgmnb = 65536
单个消息队列中允许的最大字节长度(限制单个消息队列中所有消息包含的字节数之和)
kernel.msgmax = 65536
消息队列中单个消息的最大字节数
kernel.msgmni = 256
文件指定消息队列标识的最大数目
kernel.shmmax = 68719476736
系统所允许的最大共享内存段的大小(以字节为单位)。
kernel.shmall = 4294967296
系统上可以使用的共享内存的总量(以字节为单位)。
kernel.shmmni = 4096
该参数用于设置系统范围内共享内存段的最大数量,默认值为4096,通常不需要修改。
kernel.sem = 250 32000 100 128
该参数表示设置的信号量。
net.core.rmem_default = 262144
设置接收socket的缺省缓存大小(字节)
net.core.rmem_max = 4194304
设置接收socket的最大缓存大小(字节)
net.core.wmem_default = 262144
设置发送的socket缺省缓存大小(字节)
net.core.wmem_max = 262144
设置发送的socket最大缓存大小(字节)
net.core.somaxconn = 65535
定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数。
fs.file-max = 65536
增加系统文件描述符限制
net.core.netdev_max_backlog = 262144
设置当个别接口接收包的速度快于内核处理速度时允许的最大的包序列
net.ipv4.neigh.default.gc_stale_time = 120
net.ipv4.conf.all.rp_filter = 0
1:通过反向路径回溯进行源地址验证(在RFC1812中定义)。对于单穴主机和stub网络路由器推荐使用该选项。0:不通过反向路径回溯进行源地址验证。
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
net.ipv4.tcp_syncookies = 0
表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭
net.ipv4.tcp_fin_timeout = 30
修改系統默认的 TIMEOUT 时间,默认的2MSL报文段最大生存时间,MSL=2分钟
net.ipv4.tcp_keepalive_time = 1200
表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟
net.ipv4.route.gc_timeout = 100
net.ipv4.ip_local_port_range = 1024 65000
表示用于向外连接的端口范围。缺省情况下很小:32768到61000
net.ipv4.tcp_tw_reuse = 1
表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭
net.ipv4.tcp_tw_recycle = 0
表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭
net.ipv4.tcp_max_tw_buckets = 65000
在TIME_WAIT数量等于tcp_max_tw_buckets时,不会有新的TIME_WAIT产生,
net.ipv4.tcp_syn_retries = 1
SYN超时重传次数,客户端发起SYN连接,如果超时会进行重传
net.ipv4.tcp_synack_retries = 1
syn-ack握手状态重试次数,默认5,遭受syn-flood攻击时改为1或2。这是三次握手的第二个步骤。值必须为正整数,并不能超过 255。因为每一次重新发送封包都会耗费约 30 至 40 秒去等待才决定尝试下一次重新发送或决定放弃。缺省值为5,即每一个连线要在约 180 秒 (3 分钟) 后才确定逾时
net.ipv4.tcp_max_syn_backlog = 262144
对于那些依然还未获得客户端确认的连接请求,需要保存在队列中最大数目。默认值是1024,可提高到2048。
net.ipv4.tcp_mem = 16777216 67108864 134217728
该文件保存了三个值,分别是
low:当TCP使用了低于该值的内存页面数时,TCP不会考虑释放内存。
presure:当TCP使用了超过该值的内存页面数量时,TCP试图稳定其内存使用,进入pressure模式,当内存消耗低于low值时则退出pressure状态。
high:允许所有tcp sockets用于排队缓冲数据报的页面量。
net.ipv4.tcp_rmem = 16777216 67108864 134217728
增加TCP最大缓冲区大小 此文件中保存有三个值,分别是
Min:为TCP socket预留用于接收缓冲的内存最小值。每个tcp socket都可以在建立后使用它。即使在内存出现紧张情况下tcp socket都至少会有这么多数量的内存用于接收缓冲
Default:为TCP socket预留用于接收缓冲的内存数量,默认情况下该值会影响其它协议使用的net.core.rmem_default 值,一般要低于net.core.rmem_default的值。该值决定了在tcp_adv_win_scale、tcp_app_win和tcp_app_win=0默认值情况下,TCP窗口大小为65535。
Max:用于TCP socket接收缓冲的内存最大值。该值不会影响net.core.rmem_max,"静态"选择参数SO_SNDBUF则不受该值影响。
net.ipv4.tcp_wmem = 16777216 67108864 134217728
增加TCP最大缓冲区大小此文件中保存有三个值,分别是
Min:为TCP socket预留用于发送缓冲的内存最小值。每个tcp socket都可以在建立后使用它。
Default:为TCP socket预留用于发送缓冲的内存数量,默认情况下该值会影响其它协议使用的net.core.wmem_default 值,一般要低于net.core.wmem_default的值。
Max:用于TCP socket发送缓冲的内存最大值。该值不会影响net.core.wmem_max,"静态"选择参数SO_SNDBUF则不受该值影响。
net.ipv4.ip_forward = 1
路由转发功能,1为开启
net.ipv4.tcp_timestamps = 0
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义