Skip to content
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

[Bug] 使用协程后,运行一段时间后,rpc 服务调用远程服务异常后,服务层耗时增加,无法正常提供服务 #265

Open
chulong opened this issue Oct 23, 2021 · 6 comments

Comments

@chulong
Copy link

chulong commented Oct 23, 2021

Description
使用 Alibaba Dragonwell 8.4.4 版本,发现服务运行一段时间后,服务无法正常提供服务,怀疑和 #226 问题一致,但是不确定是哪个线程引起无法正常切换协程

@chulong
Copy link
Author

chulong commented Oct 23, 2021

stack.txt

@joeyleeeeeee97
Copy link
Contributor

@chulong
Hi, 请问是否使用了黑名单机制将 NIOHandler-TimeOut-Thread-pool-8-tid-4 不转为协程?

从jstack输出来看

"NIOHandler-TimeOut-Thread-pool-8-tid-4" #1005 prio=5 os_prio=0 tid=0x00007fba440e7a30 nid=0x5ca waiting on condition [0x00007fb9ce351000]

这种线程未被转为协程

  • Coroutine [0x7fba58002690] "AsyncLoggerConfig-1" Add chinese document #14 active=36778324 steal=7499394 steal_fail=87848 preempt=1 park=0/-1
    这种线程是以协程形式运行的

@chulong
Copy link
Author

chulong commented Oct 25, 2021

是的,根据 #226 的解决方案,我设置了黑名单,但是发现未切换的线程出现耗时严重,怀疑抢不到资源

@henrysternc
Copy link

henrysternc commented Dec 30, 2021

使用dragonwell 8.9.10运行一段时间后出现Rocketmq消费停止现象,我在消费MQ消息的业务逻辑处理上使用了线程池与多线程,是不是因为这些业务线程都以协程的方式跑在同一个线程上导致了业务线程饥饿而使MQ的消费线程阻塞,如果是线程饥饿引起的,如何把业务线程均匀分布到不同的协程组线程上呢?

@yuleil
Copy link
Collaborator

yuleil commented Dec 30, 2021

可以提供一下jstack吗?

使用dragonwell 8.9.10运行一段时间后出现Rocketmq消费停止现象,我在消费MQ消息的业务逻辑处理上使用了线程池与多线程,是不是因为这些业务线程都以协程的方式跑在同一个线程上导致了业务线程饥饿而使MQ的消费线程阻塞,如果是线程饥饿引起的,如何把业务线程均匀分布到不同的协程组线程上呢?

@henrysternc
Copy link

henrysternc commented Dec 31, 2021 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants