使用webman2.1后,一段时间CPU飙升,某些进程CPU飙升,没有处理任何请求。
cpu 飙升的时候执行下 top 和 php start.php status 截图下。
已编辑,贴了
status 截图截全
好了
php是不是装了swow扩展,把swow扩展去掉。
去掉swow拓展后,没有发现问题了。想知道是版本缺陷,还是其他原因,没有使用携程
swow底层会自动hook php的一些阻塞函数,即使没有使用swow也会影响php的默认行为,并且它不像swoole有关闭选项。 又因为swow没有很好的兼容php的某些默认行为,例如stream_select时信号打断处理,某些情况下消息可读事件丢失等。这会导致安装swow但是没有使用swow的eventLoop时可能会产生隐含的bug。 因为是底层修改了PHP的默认行为,这个无法很好的在workerman层面解决。
所以建议:
cpu 飙升的时候执行下 top 和 php start.php status 截图下。
已编辑,贴了
status 截图截全
好了
php是不是装了swow扩展,把swow扩展去掉。
去掉swow拓展后,没有发现问题了。想知道是版本缺陷,还是其他原因,没有使用携程
swow底层会自动hook php的一些阻塞函数,即使没有使用swow也会影响php的默认行为,并且它不像swoole有关闭选项。
又因为swow没有很好的兼容php的某些默认行为,例如stream_select时信号打断处理,某些情况下消息可读事件丢失等。这会导致安装swow但是没有使用swow的eventLoop时可能会产生隐含的bug。
因为是底层修改了PHP的默认行为,这个无法很好的在workerman层面解决。
所以建议: