这里详细描述问题 php start.php status 查到有一些进程 pid老是出现busy, 难道是没有回收掉吗 等到全部变成busy之后 访问都访问不了
我的代码很简单,a来访问我 ,我带着他的参数去c, 做了一个中转 调用了redis 存了一下key 就没了,c可能经常链接他会超时 可能处理的慢,这样简单的业务为啥造成busy
已经不知道啥问题了,动不动就访问不了,tp虽然处理的慢,但是不会有这种问题。用不动了
业务代码处理的慢,或者有什么超时就会busy
可是我设置了超时时间的,业务请求 链接是慢,,
换个说法,如果执行status时业务进程正在处理业务,并且超过0.5秒没有处理完,就显示busy。 busy就是代表业务慢,一般没有问题,业务处理完就恢复了。但是如果客户端不断发送这种慢请求,那么服务端的就会一直在busy状态,可能影响其他客户端请求。那么加进程,要么优化业务代码。
redis busy
6251 N/A none plugin.webman.redis-queue.consumer N/A N/A N/A N/A N/A [busy
我用的webman, redis不知道有啥问题,造成业务api访问经常性的超时,而且cpu莫名会跑慢,后面换成tp 用了swolle 这个问题才好转了。。。,实在是不知道咋用的了。
这不是显而易见嘛,workerman作为中间代理,但是你的下游导致io阻塞就busy了嘛。 如何解决? 使用workerman/http-client 异步去做代理就行了,要不你就用openswoole 或者 swoole swow 去处理就不会阻塞了。
由于业务问题,只能同步,
由于业务问题,只能同步,唉
用wokerman 5.0 协程可以帮到你 ,4.0对慢业务阻塞支持不好
好吧== ,多谢各位
业务代码处理的慢,或者有什么超时就会busy
可是我设置了超时时间的,业务请求 链接是慢,,
换个说法,如果执行status时业务进程正在处理业务,并且超过0.5秒没有处理完,就显示busy。
busy就是代表业务慢,一般没有问题,业务处理完就恢复了。但是如果客户端不断发送这种慢请求,那么服务端的就会一直在busy状态,可能影响其他客户端请求。那么加进程,要么优化业务代码。
redis busy
6251 N/A none plugin.webman.redis-queue.consumer N/A N/A N/A N/A N/A [busy
我用的webman, redis不知道有啥问题,造成业务api访问经常性的超时,而且cpu莫名会跑慢,后面换成tp 用了swolle 这个问题才好转了。。。,实在是不知道咋用的了。
这不是显而易见嘛,workerman作为中间代理,但是你的下游导致io阻塞就busy了嘛。
如何解决?
使用workerman/http-client 异步去做代理就行了,要不你就用openswoole 或者 swoole swow 去处理就不会阻塞了。
由于业务问题,只能同步,
由于业务问题,只能同步,唉
用wokerman 5.0 协程可以帮到你 ,4.0对慢业务阻塞支持不好
好吧== ,多谢各位