linux连接池等待时间,LINUX系统下解决time_wait 连接数过多问题
经常检查apache的连接数,会发现很多无用的time_wait连接。有人说这是正常的,是因为一个请求中途中断造成的;还有人说微软的IE连接时产生的Time_wait会比用Firefox连接时多。个人认为有一定的Time_wait是正常的,如果超过了连接数的比例就不是很正常,所以还是找来方法解决一下。
先检查一下time wait的值:
[root@aaa1 ~]#sysctl -a | grep time | grep wait
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
这里解决问题的关键是如何能够重复利用time_wait的值,检查net.ipv4.tcp_tw当前值:
[root@aaa1 ~]# sysctl -a|grep net.ipv4.tcp_tw
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_tw_recycle = 0
增加或修改net.ipv4.tcp_tw值,将当前的值更改为1分钟(reuse是表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接; recycle是加速TIME-WAIT sockets回收):
[root@aaa1 ~]# vi /etc/sysctl.conf
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
使内核参数生效:
[root@aaa1 ~]# sysctl -p
用netstat再观察时会发现已经恢复正常。
结合DDOS和TIME_WAIT过多,建议增加如下参数设置:
# Use TCP syncookies when needed
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_synack_retries=3
net.ipv4.tcp_syn_retries=3
net.ipv4.tcp_max_syn_backlog=2048
# Enable TCP window scaling
net.ipv4.tcp_window_scaling: = 1
# Increase TCP max buffer size
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
# Increase Linux autotuning TCP buffer limits
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
# Increase number of ports available
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 5000 65000
附:查看当前的连接数状况
netstat -nat|awk '{print awk $NF}'|sort|uniq -c|sort -n
1 established
1 State
2 LAST_ACK
4 CLOSING
4 FIN_WAIT2
9 LISTEN
17 FIN_WAIT1
18 SYN_RECV
27 ESTABLISHED
811 TIME_WAIT
上面的命令可以帮助分析哪种tcp状态数量异常。其中的SYN_RECV表示正在等待处理的请求数;ESTABLISHED表示正常数据传输状态;TIME_WAIT表示处理完毕,等待超时结束的请求数。
附:查看IP连接数状况
netstat -nat|grep ":80"|awk '{print $5}' |awk -F: '{print $1}' | sort| uniq -c|sort -n
发现异常的,可以封了这个IP
linux连接池等待时间,LINUX系统下解决time_wait 连接数过多问题相关推荐
- Linux、Mac、windows 系统下 配置Python虚拟环境 virtualenvwrapper教程,workon切换环境, 非常简单方便
前言 开发及测试过程中每个环境都有各自的作用,避免破坏其他环境所以建议每个项目新建一个虚拟环境,经过对比最终我选择了virtualenvwrapper来作为我开发中虚拟环境管理工具,接下来一起来看一下 ...
- oracle commandtimeout,连接池和 Timeout expired异常解决方法
连接池和 timeout expired异常解决方法 你需要保证你每次调用连接的同时都在使用过后通过close()或dispose()对其执行了关闭.最简单的办法就是使用using,将你的连接泄漏方法 ...
- 性能案例-Linux下解决time_wait连接过多(Linux内核优化)
一.性能测试的主要概念和计算公式 系统吞度量要素: 一个系统的吞度量(承压能力)与request对CPU的消耗.外部接口.IO等等紧密关联. 单个reqeust 对CPU消耗越高,外部系统接口.IO影 ...
- Linux kubuntu x64系统下解决QT5.12编辑菜单和工具栏不显示图标问题
Linux kubuntu x64系统下发现QT5.12在设计视图下编辑菜单和工具栏显示图标,但是编译运行后发现菜单和工具栏不显示图标,如下图: 我的解决办法是: 1.在QT项目中,菜单和工具栏图标一 ...
- linux安装 mysql-5.7.25_Linux 系统下安装 mysql5.7.25(glibc版)
前言:经过一天半的折腾,终于把 mysql 5.7.25 版本安装上了 Amazon Linux AMI release 2017.09系统上,把能参考的博客几乎都看了一遍,终于发现这些细节问题,然而 ...
- linux mysql设置数据库utf_Linux系统下MySQL数据库服务器字符集设置
Linux认证考试:Linux系统下的MySQL数据库服务器字符集设置 启动MySQL后,以root登录mysql isher@isher-ubuntu:~$ mysql -u root >sh ...
- linux java进程消失_Linux系统下的Java进程无故消失怎么办?
Linux系统步骤的一些Java项目总是无故的消失,原来是Java进程被关闭掉了.为什么会出现这种情况呢?有可能是被系统自动清除多余进程,或是其他程序关掉了Java项目,这个时候该怎么办呢? 解决方法 ...
- linux vnc 禁止复制,Linux_Linux系统下VNC SERVER的相关配置,安装: 复制代码代码如下: - phpStudy...
Linux系统下VNC SERVER的相关配置 安装: 复制代码代码如下: yum install tigervnc-server 配置: (1) 复制配置文件: 复制代码代码如下: ~]# cp / ...
- linux安装多版本php_Linux系统下为Nginx安装多版本PHP
我们在安装配置服务器LNPM环境时应该考虑到PHP多版本并存的问题,下面是实现Linux系统下为Nginx安装多版本PHP的实现方法 linux版本:64位CentOS 6.4 Nginx版本:ngi ...
最新文章
- 免费版CloudFlare CDN基本设置参考
- 关于Horizon 7 Agent与远程桌面(mstsc)兼容性问题解决办法
- Win7 64位的SSDTHOOK(1)---SSDT表的寻找
- 查找文件命令find总结以及查找大文件
- 微服务架构方案 springBoot+dubbo
- vb.net2019-上传文件
- 打不开开php_(13)10个开源免费的PHP博客CMS
- C# 操作IIS服务器Demo
- immutable.js笔记
- margin 塌陷bug 触发bfc
- 【干货】神经网络初始化trick:大神何凯明教你如何训练网络!
- [LeetCode]Linked List Cycle
- php微信支付接口开发程序(一)
- NekoHTML 学习笔记
- ATA和ATAPI类型硬盘区别方法
- smobiler中实现页面切换_Smobiler如何实现.net一键开发,ios和android跨平台运行
- Java | JPanel与JFrame的区别
- EOF到底是什么意思?
- re之ida和OllyDbg的使用与代码分析
- 老款Mac装win10黑屏或灰屏
热门文章
- python用线性回归预测股票价格
- Python timeit模块的使用
- ASP.NET企业开发框架IsLine FrameWork系列之十三--框架配置信息大全(上)
- asp.net文件上传进度条控件(破解版~没时间限制)多项自定义 .
- Page.ClientScript.RegisterStartupScript() 方法与Page.ClientScript.RegisterClientScriptBlock() 方法
- [NLP]基于IMDB影评情感分析之BERT实战-测试集上92.24%
- java jersey client,如何在Jersey-Client Java中实现重试机制
- 吴恩达深度学习 —— 2.12 向量化的更多例子
- Python编程高手之路——第二章:流程控制
- Photoshop CS6将多张图片合成GIF动态图或视频,并将其保存导出