close_wait生成的原因 close wait

这几天服务器出现一个奇怪的现象,就是并发不高,但是有的时候会出现很多请求在NG上标识是写的状态,这样就会有大量请求处于等待没有返回给客户端,并且网站打开很慢,查了下PHP进程,发现当出现这个情况的时候,PHP -cgi的监听端口会出现很多链接,我的PHP-CGI启动的是64个,但是在出问题的时候发现会有高达1000多个链接,而正常情况下只有64个链接。我们的CGI监听9000端口,64个CGI在启动后都绑定在9000端口上,进程循环侦听这个端口,处理对这个端口的请求,正常情况下,只会有64个链接,表示所有的链接请求PHP-CGI都能正常响应,但是如果大于这个值,就表示多余的请求在排队等待处理,这样就必然会造成慢,等待的进程越多就越慢。造成这个的原因分析可能有两个,一个是请求量很大,64个PHP-CGI已经不够用了,但是流量并没有增加,所以说明不是这个,另外一个原因就是PHP在执行过程中,被阻塞住了,造成挂起等待,这样就不能响应新的请求。晚上在监控PHP-CGI的时候,发现有PHP-CGI处于CLOSE_WAIT状态,于是搜索了下,结果如下:
CLOSE_WAIT状态的生成原因
首先我们知道,如果我们的服务器程序APACHE处于CLOSE_WAIT状态的话,说明套接字是被动关闭的!

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

close_wait生成的原因 close wait
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,那么可能是在关闭连接之前还有许多数据要发送或者其他事要做,导致没有发这个FINpacket。

通常来说,一个CLOSE_WAIT会维持至少2个小时的时间。如果有个流氓特地写了个程序,给你造成一堆的CLOSE_WAIT,消耗

你的资源,那么通常是等不到释放那一刻,系统就已经解决崩溃了。感觉我们的系统就属于这种情况

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

  

爱华网本文地址 » http://www.aihuau.com/a/25101014/233894.html

更多阅读

右脸颊长痘的原因 右脸颊长痘怎么调理

  有时候一些MM与人说话时,会因为用手捂着右脸颊而被责怪不礼貌。其实,罪魁祸首就是右脸颊的痘痘。它们让MM没有勇气地理直气壮地说话。相信很多受了委屈的MM都想知道右脸颊长痘的原因,那今天小编就先告诉你右脸长痘痘是什么原因,再教

口臭的原因和治疗方法 什么原因会引起口臭

口臭的形成原因:口臭的形成原因主要是由于饮食不节,或过多地食用辛辣食品,以及劳倦过度等不良的生活方式造成的脾功能衰竭,胃肠功能减弱,使食物在肠内得不到正常的消化,大量食物糟粕不能排出体外,愈积愈多,形成毒素进入肠壁血液,从而伤害脏腑

冰箱不制冷的原因是什么? 新飞冰箱不制冷的原因

相信有很多朋友,都遇到过家里的冰箱不制冷了,但其真正的原因都不是分了解,下面我就为大家综合的简单介绍几种原因,帮您更好的解析冰箱不制冷的原因是什么?——步骤/方法冰箱不制冷的原因是什么? 1、冰箱不制冷的原因 首先:电冰箱温控器是

智能手机速度变慢的原因以及解决办法 下载速度慢的解决办法

智能手机速度变慢的原因以及解决办法——简介人手一机智能手机,不管是高端的还是低端的,但是在买来以后用着用着,我们就发现自己的手机越来越不智能,速度也是变得越来越慢,这是什么原因呢?如何解决这个问题呢?智能手机速度变慢的原因以及

电脑反应慢的原因 游戏运行慢是什么原因

电脑反应慢的原因——简介你在为电脑很卡而烦恼?我作为一名富有爱心的电脑爱好者觉得有义务为大家详细全面的解答导致电脑卡、运行速度慢的原因以及解决办法,彻底打消大家电脑卡怎么办的烦恼。首先电脑能实现多媒体的功能,就缺少不了硬

声明:《close_wait生成的原因 close wait》为网友落葉依分享!如侵犯到您的合法权益请联系我们删除