经常检查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 连接数过多问题相关推荐

  1. Linux、Mac、windows 系统下 配置Python虚拟环境 virtualenvwrapper教程,workon切换环境, 非常简单方便

    前言 开发及测试过程中每个环境都有各自的作用,避免破坏其他环境所以建议每个项目新建一个虚拟环境,经过对比最终我选择了virtualenvwrapper来作为我开发中虚拟环境管理工具,接下来一起来看一下 ...

  2. oracle commandtimeout,连接池和 Timeout expired异常解决方法

    连接池和 timeout expired异常解决方法 你需要保证你每次调用连接的同时都在使用过后通过close()或dispose()对其执行了关闭.最简单的办法就是使用using,将你的连接泄漏方法 ...

  3. 性能案例-Linux下解决time_wait连接过多(Linux内核优化)

    一.性能测试的主要概念和计算公式 系统吞度量要素: 一个系统的吞度量(承压能力)与request对CPU的消耗.外部接口.IO等等紧密关联. 单个reqeust 对CPU消耗越高,外部系统接口.IO影 ...

  4. Linux kubuntu x64系统下解决QT5.12编辑菜单和工具栏不显示图标问题

    Linux kubuntu x64系统下发现QT5.12在设计视图下编辑菜单和工具栏显示图标,但是编译运行后发现菜单和工具栏不显示图标,如下图: 我的解决办法是: 1.在QT项目中,菜单和工具栏图标一 ...

  5. linux安装 mysql-5.7.25_Linux 系统下安装 mysql5.7.25(glibc版)

    前言:经过一天半的折腾,终于把 mysql 5.7.25 版本安装上了 Amazon Linux AMI release 2017.09系统上,把能参考的博客几乎都看了一遍,终于发现这些细节问题,然而 ...

  6. linux mysql设置数据库utf_Linux系统下MySQL数据库服务器字符集设置

    Linux认证考试:Linux系统下的MySQL数据库服务器字符集设置 启动MySQL后,以root登录mysql isher@isher-ubuntu:~$ mysql -u root >sh ...

  7. linux java进程消失_Linux系统下的Java进程无故消失怎么办?

    Linux系统步骤的一些Java项目总是无故的消失,原来是Java进程被关闭掉了.为什么会出现这种情况呢?有可能是被系统自动清除多余进程,或是其他程序关掉了Java项目,这个时候该怎么办呢? 解决方法 ...

  8. linux vnc 禁止复制,Linux_Linux系统下VNC SERVER的相关配置,安装: 复制代码代码如下: - phpStudy...

    Linux系统下VNC SERVER的相关配置 安装: 复制代码代码如下: yum install tigervnc-server 配置: (1) 复制配置文件: 复制代码代码如下: ~]# cp / ...

  9. linux安装多版本php_Linux系统下为Nginx安装多版本PHP

    我们在安装配置服务器LNPM环境时应该考虑到PHP多版本并存的问题,下面是实现Linux系统下为Nginx安装多版本PHP的实现方法 linux版本:64位CentOS 6.4 Nginx版本:ngi ...

最新文章

  1. 免费版CloudFlare CDN基本设置参考
  2. 关于Horizon 7 Agent与远程桌面(mstsc)兼容性问题解决办法
  3. Win7 64位的SSDTHOOK(1)---SSDT表的寻找
  4. 查找文件命令find总结以及查找大文件
  5. 微服务架构方案 springBoot+dubbo
  6. vb.net2019-上传文件
  7. 打不开开php_(13)10个开源免费的PHP博客CMS
  8. C# 操作IIS服务器Demo
  9. immutable.js笔记
  10. margin 塌陷bug 触发bfc
  11. 【干货】神经网络初始化trick:大神何凯明教你如何训练网络!
  12. [LeetCode]Linked List Cycle
  13. php微信支付接口开发程序(一)
  14. NekoHTML 学习笔记
  15. ATA和ATAPI类型硬盘区别方法
  16. smobiler中实现页面切换_Smobiler如何实现.net一键开发,ios和android跨平台运行
  17. Java | JPanel与JFrame的区别
  18. EOF到底是什么意思?
  19. re之ida和OllyDbg的使用与代码分析
  20. 老款Mac装win10黑屏或灰屏

热门文章

  1. python用线性回归预测股票价格
  2. Python timeit模块的使用
  3. ASP.NET企业开发框架IsLine FrameWork系列之十三--框架配置信息大全(上)
  4. asp.net文件上传进度条控件(破解版~没时间限制)多项自定义 .
  5. Page.ClientScript.RegisterStartupScript() 方法与Page.ClientScript.RegisterClientScriptBlock() 方法
  6. [NLP]基于IMDB影评情感分析之BERT实战-测试集上92.24%
  7. java jersey client,如何在Jersey-Client Java中实现重试机制
  8. 吴恩达深度学习 —— 2.12 向量化的更多例子
  9. Python编程高手之路——第二章:流程控制
  10. Photoshop CS6将多张图片合成GIF动态图或视频,并将其保存导出