Linux系统Too Many Open Files故障的处理

今天有个linux服务器一直报Too Many Open Files的异常,导致系统进行网络请求失败,重启应用容器之后恢复正常。

找到了当时的服务器连接监控,发现close_wait状态的连接一直在升高,上升到了10k后就引起应用报错了。因为我们设置的linux的最大的连接数为10240。

在博客园逛了一下,找到了下面的描述

如果我们的服务器TCP连接处于CLOSE_WAIT状态的话,那说明套接字是被动关闭的!

更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/Linux/

因为如果是CLIENT端主动断掉当前连接的话,那么双方关闭这个TCP连接共需要四个packet:

Client --->  FIN  --->  Server

Client <---  ACK  <---  Server

这时候Client端处于FIN_WAIT_2状态;而Server 程序处于CLOSE_WAIT状态。

Client <---  FIN  <---  Server

Server发送FIN给Client,Server 就置为LAST_ACK状态。

Client --->  ACK  --->  Server(这步没做)

Client回应了ACK,那么Server 的套接字才会真正置为CLOSED状态。

Server 程序处于CLOSE_WAIT状态,而不是LAST_ACK状态,说明还没有发FIN给Client,那么可能是在关闭连接之前还有许多数据要发送或者其他事要做,导致没有发这个FIN packet。

通常来说,一个CLOSE_WAIT会维持至少2个小时的时间。

了解到这个情况之后,可以定位到应用之所以出现这么多的close_wait的状态,是因为一直在接收合作方发送过来的通知,是有个合作方在发送通知后没有将ACK响应给我们,造成了close_wait状态积压,超过系统设置的最大值而无法再建立连接。

通过修改一下TCP/IP的参数,来缩短这个时间:修改tcp_keepalive_*系列参数有助于解决这个问题。

作者:cnblogs 周蝌蚪

时间: 2024-10-06 07:18:21

Linux系统Too Many Open Files故障的处理的相关文章

Linux系统中‘dmesg’命令处理故障和收集系统信息的7种用法

Linux系统中'dmesg'命令处理故障和收集系统信息的7种用法 'dmesg'命令显示linux内核的环形缓冲区信息,我们可以从中获得诸如系统架构.cpu.挂载的硬件,RAM等多个运行级别的大量的系统信息.当计算机启动时,系统内核(操作系统的核心部分)将会被加载到内存中.在加载的过程中会显示很多的信息,在这些信息中我们可以看到内核检测硬件设备. dmesg Command Examples dmesg 命令的使用范例 'dmesg'命令设备故障的诊断是非常重要的.在'dmesg'命令的帮助下

linux系统SSH访问被拒绝网络故障的解决

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 在最近碰到了网站遭遇挂黑链事件被百度惩罚,流量大幅减少之后,笔者开始真切认识到网站安全问题是重中之重,一旦被挂黑链前期的辛苦会在顷刻之间全部付诸东流.与绝大部分的站长一样,在网站建设的时候,笔者选择了windows 2003作为服务器的操作系统,最大的考虑因素是由于这个操作系统简单易用.近期在一个做IT技术的朋友建议下,我尝试着将网站&quo

浅谈linux系统下常见的故障与处理方法

与windows系统一样,linux操作系统也会存在很多问题和故障,很多linux新手都害怕故障,面对出现的问题显得无可奈何,更有甚者,由此放弃了linux,其实,我们不应该惧怕问题,学习就是一个发现问题与解决问题的过程,只要掌握了解决问题的基本思路,一切故障都会迎刃而解,当然前提是我们已经具备了解决问题的思路和扎实的知识功底. 一.处理linux系统故障的思路 作为一名合格的linux系统管理员,一定要有一套清晰.明确的解决故障思路,当问题出现时,才能迅速定位.解决问题,这里给出一个处理问题的

Linux系统中常见故障排查汇总

现在我们终于完成了整个项目的所有任务,真是令人愉快的事情,是不是很有成就感?这就是苦尽甘来.每一次技术的突破,都经历着苦闷,伴随着快乐,可我们还是执着的继续努力,从中也积累了更多的经验,这就是实践给予我们的丰厚回报.可我们还是有必须再回想一下经历的全过程,从中总结经验,查找问题,汇总并分析故障的原因,这是我们http://www.aliyun.com/zixun/aggregation/38980.html">网络工程师良好的习惯. 下面汇总了项目实现全过程可能出现的故障及解决方法,看看是

Linux系统Repair filesystem故障

刚装的LINUX系统没有两天,在启动系统到 Facking filesystem [faild] (错误) 之后,系统就进入: [Repair filesystem] 1# 结果我随便输了几个命令又出现: [Repair filesystem] 2# 直到 [Repair filesystem] 11# (后面有可能还有 我没有再往下打了) 在网上搜了一搜 加上在群里发信息,打听到用命令:fsck 我先用fsck命令试了一试出现一串串字符,看不懂 但是重启后系统还是不行.在网上搜了一下用命令 f

一次Linux系统1分钟负载5000+的故障排错

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dgd2010.blog.51cto.com/1539422/1690817 昨天上午查看Zabbix监控界面时,发现其中一台服务器的进程数量和1分钟负载已经达到了一个非常惊人的数量,Zabbix默认报警数值是进程数量在5分钟平均值大于1000,1分钟系统负载5分钟平均值大于5. 先大体列一下服务器的软硬件信息: 服务器硬件:Dell PowerEdge R720, 2 x In

linux系统中root用户不能登录怎么办?

问题描述 linux系统中root用户不能登录怎么办? 自从我更改了Linux系统的IP地址,root用户就不能登录了,root用户登录提示"鉴定故障".普通用户可以登录,能用su命令登录root用户,但是不能直接登录. 解决方案 如果没有给ROOT设置密码,就用普通用户登录,没有普通用户这是不可能的登录进入终端,直接输入 sudo passwd root输入普通用户密码输入你要设置的root密码重复root密码这样用root就行了 解决方案二: 终端输入:sudo gedit /us

Linux系统服务器防病毒实战

  一.Linux病毒简介 随着Linux应用的日益广泛,有大量的网络服务器使用Linux操作系统.由于Linux的桌面应用和Windows相比还有一定的差距,所以在企业应用中往往是Linux和Windows操作系统共存形成异构网络.在服务器端大多使用Linux和Unix的,桌面端使用Windows XP.Vista.Linux操作系统一直被认为是Windows系统的劲敌,因为它不仅安全.稳定.成本低,而且很少发现有病毒传播.但是,随着越来越多的服务器.工作站和个人电脑使用Linux软件,电脑病

浅谈Linux系统的备份策略

一  为何要备份Linux系统 一个应用中的Linux系统,受内部环境影响.底层硬件的影响.外来黑客的攻击,出现问题是难免的,作为一名系统管理人员,自身的职责并不是要保证系统永远不出现问题,事实上也是不可能的,而是在系统出现故障或者崩溃时,能以最快的速度,在最短的时间内恢复系统的运行,保证数据的安全,将故障带来的损失降到最低点. 这就要求系统管理人员对操作系统和业务应用有一个合理的备份恢复策略,完美的备份策略可以保证业务的零宕机时间和数据的完全恢复.由于业务是运行在操作系统之上,因此操作系统的备