workerman 推送消息出现阻塞
按官网例子写的推送给设备端消息,运行一段时间后,
$client = stream_socket_client('tcp://127.0.0.1:5678', $errno, $errmsg, 1);
fwrite($client, json_encode($data)."\n");
$res = fread($client, 8192);
使用平台为LINUX ,调试发现这个推送消息给设备会出现阻塞,具体原因目前没查到,状况为心跳正常,但是推送数据给设备端,返回超时,60秒都不能返回推送成功数据,导致后面一直运行不了,重启进程服务,正常,所以想知道是什么问题引起的,需要怎么去解决,查看了LINUX是SOCKET连接数设置是6万多,所以应该不是端口连接数受限制引起的
没有找到相关结果
已邀请:
2 个回复
我是厂长
赞同来自:
这问题我也遇到过, 好像确实是有点延迟,通过肉眼感受
walkor
赞同来自:
下次遇到这个问题运行 php start.php status截图下,截图截全,不要截图部分。
如果status里有进程出现busy状态,参考 http://doc.workerman.net/debug/busy-process.html 定位。
参考手册 http://doc.workerman.net/appendices/kernel-optimization.html 优化linux内核,并安装event扩展(超过1000连接event扩展是必须的)。
还有看下系统负载是否正常。负载高的话也会延迟。