-
Notifications
You must be signed in to change notification settings - Fork 4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bthread在rq is full时应先运行已有的job #204
Comments
E0121 00:11:10.885643 22582 task_group_inl.h:88] _rq is full, capacity=4096 上周末程序core了一整天,以前也偶尔出现,机器负载高了就会这现这问题,coredump之前都是这个错误, 难道是这个bug导致的? |
rq is full不会导致直接的问题,coredump可能还是和你的逻辑有关系 |
我之前统计过正在进行中的bthread的数量, 通过在函数入口为counter+1, 出口-1来实现。 |
我们压测也遇到了死锁的问题, 一直打_rq is full和_remote_rq is full这两条log。 什么请求都处理不了。 |
这个问题,总觉得会成为brpc以后最坑的点 |
|
@serverglen 想请教下如果将gflags stask_group_runqueue_capacity和bthread work线程改大一点,理论是也不能从根本上解决问题吧,当并发大的时候,还是会陷入阻塞状态吧,你们是怎么解决的? |
而不是sleep-spin(可能死锁)。
Update: bthread中的ready_to_run等一系列函数接口需要重新设计,主要是要传入TaskGroup** pg,也就是说这些函数可能导致调用的bthread做上下文切换。如果这么实现的话,一方面规避了可能的死锁,另一方面对创建bthread的频率做了throttle,wsq的capacity可以进一步调小。
The text was updated successfully, but these errors were encountered: