当前位置: 首页 > news >正文

linux服务TCP参数配置

Linux TCP参数配置

阿里云规范


1.【推荐】高并发服务器建议调小 TCP 协议的 time_wait 超时时间。
说明:操作系统默认 240 秒后,才会关闭处于 time_wait 状态的连接,在高并发访问下,服务器端会因为处于
time_wait 的连接数太多,可能无法建立新的连接,所以需要在服务器上调小此等待值。
正例:在 linux 服务器上请通过变更/etc/sysctl.conf 文件去修改该缺省值(秒):net.ipv4.tcp_fin_timeout=30
2.【推荐】调大服务器所支持的最大文件句柄数(File Descriptor,简写为 fd)
说明:主流操作系统的设计是将 TCP / UDP 连接采用与文件一样的方式去管理,即一个连接对应于一个 fd。主流的 linux
服务器默认所支持最大 fd 数量为 1024,当并发连接数很大时很容易因为 fd 不足而出现“open too many files”错误,
导致新的连接无法建立。建议将 linux 服务器所支持的最大句柄数调高数倍(与服务器的内存数量相关)。

参数详情

为防止洪水攻击,高并发系统需要将此项关闭
net.ipv4.tcp_syncookies = 0

开启TCP连接重用,允许处理TIME-WAIT状态的连接重新用于新的TCP连接
net.ipv4.tcp_tw_reuse = 1

开启快速回收TCP连接中处于TIME-WAIT状态的连接
net.ipv4.tcp_tw_recycle = 1

#修改超时时间( s ),该值表示如果连接由本端关闭,则连接处于 FIN-WAIT-2状态的时间为
net.ipv4.tcp_fin_timeout = 30

#当 keepalive(长连接)启用的时候,TCP发送 keepalive 消息(探测包)的时间间隔( s ),默认为2个小时
net.ipv4.tcp_keepalive_time =1200

#服务器对外连接的端口范围,影响该服务器与其他服务器的连接数
net.ipv4.ip_local_port_range =102465535

#SYN队列的长度,可以容纳更多等待连接的网络连接数,默认为1024
net.ipv4.tcp_max_syn_backlog = 65535

#保持 TIME_WAIT 状态连接的最大数量,如果超过此值,TIME_WAIT 将立刻被清除并打印警告信息,默认为180000
net.ipv4.tcp_max_tw_buckets =5000

#每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目
net.core.netdev_max_backlog =65535

TCP最大连接数
net.core.somaxconn = 65535

#预留用于接收缓冲的内存默认值(字节)
net.core.rmem_default = 8388608

#预留用于接收缓冲的内存最大值(字节)
net.core.rmem_max = 16777216

#预留用于发送缓冲的内存默认值(字节)
net.core.wmem_default = 8388608

#预留用于发送缓冲的内存最大值(字节)
net.core.wmem_maX = 16777216

#避免时间戳异常
net.ipv4.tcp_timestamps = 0

#系统中最多有多少个 TCP 套接字不被关联到任何一个用户文件句柄上,如果超过这个数字,连接将即刻被复位并打印警告信息,这个限制仅仅是为了防止简单的DoS 攻击
net.ipv4.tcp_max_orphans =3276800

生产环境配置


net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.netdev_max_backlog = 262144
net.core.somaxconn = 262144
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 30
net.ipv4.ip_local_port_range = 1024 65000

 服务器展示:

http://www.lryc.cn/news/146099.html

相关文章:

  • 部署Spring Boot项目
  • Java 中数据结构LinkedList的用法
  • jmeter递增压测线程组配置
  • hutool工具
  • Redis.conf 配置文件详解
  • linux磁盘空间满了
  • Ansible项目实战管理/了解项目环境/项目管理
  • hadoop 学习:mapreduce 入门案例一:WordCount 统计一个文本中单词的个数
  • vue2项目中el-input单独使用max和maxlength不生效问题
  • 源码角度看待线程池的执行流程
  • 我们的第一个 Qt 窗口程序
  • Linux 8 下的容器引擎Podman概述
  • C++编辑修改PDF
  • 数据倾斜优化
  • Acwing796.子矩阵的和
  • 【ELK日志收集系统】
  • Java项目中实现信号的连续接收
  • vue权限管理——按钮控制
  • jvm的内存区域
  • 即时通讯开发中的性能优化技巧
  • flinkcdc同步完全量数据就不同步增量数据了
  • VBA:Application.GetOpenFilename打开指定文件夹里的excel类型文件(xls、xlsx)
  • 利用R作圆环条形图
  • JavaScript(笔记)
  • 软件工程(九) UML顺序-活动-状态-通信图
  • JVM 是怎么设计来保证new对象的线程安全
  • 【JavaEE基础学习打卡00】该专栏知识大纲在这里!
  • C# 跨线程访问窗体控件
  • Ctenos7安装mysql-8.1.0/tomcat-9.0.80/LNMT部署
  • input时间表单默认样式修改(input[type=“date“])