0

使用 LMAX Disruptor,我们观察到,如果我们在一个应用程序中一起使用 5-10 个干扰器(有点像一个干扰器链,每个干扰器都有一个消费者执行指定的任务,然后将消息移交给下一个干扰器/ ringbuffer), 发生的情况是 CPU 利用率达到 90% 及以上,系统变得无响应,直到我们关闭应用程序,我们觉得这是因为有这么多活跃的中断线程。即使破坏者没有真正处理任何事情,也会发生这种情况。任何人都可以评论在应用程序中使用的最佳干扰器数量是多少?

4

1 回答 1

1

可能是您需要更改对消费者使用的等待策略。如果您对所有这些都使用忙等待策略,即使没有向环形缓冲区提供输入,轮询线程仍可能占用 CPU 资源,因为它们将处于紧密循环中,不断检查用于读取新值的缓冲区。

于 2014-03-24T22:01:29.970 回答