物联网的服务器,运行15个月,终端设备4300台,双核4G内存,阿里云服务器,1M带宽。CPU负载10-20%,内存负载50%。workman中events代码最后更新时间是2019年1月,最近70天无故障稳定运行。2019年3月13日9点,重启服务器后,gateway进程2个的CPU占有率接近99%,目前终端设备连接2000台左右,这些设备的终端数据服务器可以接收到并处理,但是速度很慢。从2018年8月3000台左右逐步增加到4300。近3个月都在4000以上。检查Events代码,未发现问题,恢复之前2018年8月的Events文件,重启服务器,故障依旧。检查过LINUX优化(根据手册),之前已安装EVENTS扩展。将镜像恢复到新服务器,可以正常使用。一个晚上未能解决问题,看过workman.log,提示
2019-03-14 04:09:09 pid:2493 SendBufferToWorker fail. The connections between Gateway and BusinessWorker are not ready. See http://wiki.workerman.net/Error3
2019-03-14 04:09:09 pid:2492 SendBufferToWorker fail. The connections between Gateway and BusinessWorker are not ready. See http://wiki.workerman.net/Error3。
看过帮助,检查registerAddress = '127.0.0.1:1238';
(设置没有错,之前就是这样设置,从未改变)。请教各位大神,可否紧急援手,不吝赐教
使用strace -p PID 跟踪发现:too many open files ,但是event已安装1年多了,系统也一直稳定运行,看了手册,关于打开文件的设置,这个设置没有错,找不到解决办法,在线等。万分感激
http://doc.workerman.net/appendices/kernel-optimization.html too many open files 是进程打开文件数超过了内核限制。有可能是设置的内核配置没生效,或者启动方式等问题导致绕过了这个内核配置。在命令行里ulimit -n 查看打开文件数内核配置是否生效,确认没问题后在命令行里直接启动workerman。
大神啊,我一台服务器都快搞奔溃了