昨天服务器突然websocket异常,查看服务器情况,出现了大量TCP连接数,大量状态为CLOSE_WAIT,且TCP连接数还在一直增长,直至最后整个websocket崩溃,然后重启workerman,connections才释放掉,业务恢复正常。
想请教各位:
1、这种大量CLOSE_WAIT状态的TCP连接一般都是由什么导致的?为什么系统已经运行很多天都没有出现此问题,昨天却突然出现,虽然昨天出现的时候网站的访问量比较高,但是相较于以前访问量都还算正常,难道有遭受别人攻击的情况?
2、我使用了Gateway框架搭建websocket,没有加心跳,大量CLOSE_WAIT是否跟这个有很大关系,如果有关系的话,为什么系统已经运行了很长时间都没事,刚好昨天出现?
没装event扩展导致的。连接数超过超过1000就要装event扩展了。你的都过万了,肯定要装了
由于系统环境是原先同事搭建的,时间比较久,他也不记得原先是否安装了event扩展了。我看了一些安装event扩展的资料,感觉都不是很详细,请问怎样判断系统是否已经安装了event扩展?
php start.php status 命令里 event-loop 一栏,我是看的这个。你的是select,安装event扩展后是event
@998:文档里说PHP7的不要安装libevent,但安装event时又需要libevent,咋搞?
php7不安装libevent扩展。event扩展安装需要系统有libevent库,并不是要你安装libevent扩展。libevent库和libevent扩展是2个概念,类似安装mysql和安装mysql扩展是2个事情。