[转]nginx+php产生大量TIME_WAIT
来源:互联网 发布:单基因遗传病知乎 编辑:程序博客网 时间:2024/05/10 19:49
nginx+php产生大量TIME_WAIT - levens - 51CTO技术博客 http://leven.blog.51cto.com/1675811/382097一 TIME_WAIT产生原因:1、nginx现有的负载均衡模块实现php fastcgi负载均衡,nginx使用了短连接方式,所以会造成大量处于TIME_WAIT状态的连接。2、TCP/IP设计者本来是这么设计的主要有两个原因(1) 防止上一次连接中的包,迷路后重新出现,影响新连接(经过2MSL,上一次连接中所有的重复包都会消失)(2) 可靠的关闭TCP连接在主动关闭方发送的最后一个 ack(fin) ,有可能丢失,这时被动方会重新发fin, 如果这时主动方处于 CLOSED 状态 ,就会响应 rst 而不是 ack。所以主动方要处于 TIME_WAIT 状态,而不能是 CLOSED 。二 过多TIME_WAIT危害TIME_WAIT 并不会占用很大资源的,除非受到攻击。只要把TIME_WAIT所占用内存控制在一定范围。一般默认最大是35600条TIME_WAIT。三 解决方法net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。net.ipv4.tcp_fin_timeout = 30 表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。net.ipv4.tcp_keepalive_time = 1200 表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。net.ipv4.ip_local_port_range = 1024 65000 表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。net.ipv4.tcp_max_syn_backlog = 8192 表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。net.ipv4.tcp_max_tw_buckets = 5000 表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默 认为180000,改为5000。对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于Squid,效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。注:net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 1设置这两个参数: reuse是表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接; recyse是加速TIME-WAIT sockets回收查看原文:http://chimmu.dynu.net/2017/02/09/%e8%bd%acnginxphp%e4%ba%a7%e7%94%9f%e5%a4%a7%e9%87%8ftime_wait/
0 0
- [转]nginx+php产生大量TIME_WAIT
- nginx+php产生大量TIME_WAIT
- nginx大量TIME_WAIT的解决办法--转
- nginx大量TIME_WAIT的解决办法
- TPS不稳定,队列产生大量的TIME_WAIT?
- Nginx造成后端服务器大量TIME_WAIT的解决办法
- 关于nginx造成大量TIME_WAIT导致web项目无法访问
- 一个大量TIME_WAIT解决办法
- 服务器大量time_wait处理
- 大量的TIME_WAIT解决办法
- 大量的TIME_WAIT解决办法
- linux 出现大量TIME_WAIT
- mysql解决大量time_wait
- TCP大量TIME_WAIT理解
- 服务器端主动关闭连接, 产生的TIME_WAIT状态为什么会占用服务端大量端口?
- nginx后端应用服务器有大量的tcp连接处于time_wait
- Linux大量的TIME_WAIT处理
- linux 大量的TIME_WAIT解决办法
- selenium3填坑
- 二叉树类型笔试面试题大总结(含代码)
- UGUI渲染顺序
- 查看Linux系统/文件是32位还是64位
- ThinkPHP5开发的正确姿势
- [转]nginx+php产生大量TIME_WAIT
- recyclerView更新数据,定位到某个位置
- C# datagridview限制单元格输入数字
- RecycleView上拉加载和下拉刷新二
- linux 版本中 i386/i686/x86-64/pcc 等... 的区别
- linux下各种解压方法
- Java Web 中Ajax请求数据不一致与hibernate缓存有关
- java计算时间差
- mavenCenter和JCenter