首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
swoole task处理能力的问题
swoole_server->task函数的注意事项这么说: > task操作的次数必须小于onTask处理速度,如果投递容量超过处理能力,task会塞满缓存区,导致worker进程发生阻塞。worker进程将无法接收新的请求 我用Jmeter压测,吞吐量一下子可以到4000,接下来就开始出错,不重启服务再次压测性能受到严重影响。也就是当投递容量超过处理能力时,有没有相关参数可以控制稳定性, 毕竟生产环境稳定第一。
发布于8年前 · 8 次浏览 · 来自
提问
骆
骆帅-PHP
swoole_server->task函数的注意事项这么说: > task操作的次数必须小于onTask处理速度,如果投递容量超过处理能力,task会塞满缓存区,导致worker进程发生阻塞。worker进程将无法接收新的请求 我用Jmeter压测,吞吐量一下子可以到4000,接下来就开始出错,不重启服务再次压测性能受到严重影响。也就是当投递容量超过处理能力时,有没有相关参数可以控制稳定性, 毕竟生产环境稳定第一。
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2018-01-16
i
imluxin
俺也受这个问题困扰,现在只好自己保持一个数组,用于保存正在运行的task_id,然后在finish中将这个task_id清理掉。于是,投递task之前需要检查一下,是否会超出设定的task_worker_num,超过了就不投递task(我是用tick方式定时投递task,所以此时只好跳过了)
赞
0
回复
2018-03-29
c
codeRemover
使用内置的消息队列,或者使用外部的消息队列来处理吧。
赞
0
回复
2019-09-21
W
While(True)
咨询您下,我用swoole原生的websocket 包裹了一层,然后进行逻辑处理, open,receive都用redis记录信息,然后跑到逻辑层再记录一次。 发现300还比较正常, 一旦超过400,就非常不稳定,有时候正常,open丢一个, 然后跑到400,会稳定的丢50的open请求 1000的时候,就会丢大量的包,能丢700左右的open连接。。。 用的公司阿里云的服务器,4G内存 问题 1 是我包裹的php代码问题吗? 2 是jmeter的问题吗?我发太多电脑会卡=。= 3 是上述说的需要队
赞
0
回复