“bw:SpinningDown”意味着在一个RedisTimeoutException中发生什么?

ruoxqz4g  于 2022-10-31  发布在  Redis
关注(0)|答案(1)|浏览(124)

“bw:在此错误中,“SpinningDown”表示-
执行GET超时(5000 ms),下一步:获取foo!bar!baz,inst:5,qu:0,qs:0,aw:错误,bw:降速,....
这是否意味着Redis服务器示例正在停止运行,或者其他什么?

s4n0splo

s4n0splo1#

缩写bw代表Backlog-Writer,它包含了Redis中backlog的运行状态。
对于此特定状态:SpinningDown,你实际上遗漏了与之相关的重要信息。
有4个值可供追踪,分别为“忙碌”、“空闲”、“最小值”和“最大值”。让我们假设这些值:忙碌=250,闲=750,最小值=200,最大值=1000
在这种情况下,现有(忙碌)线程比最小线程多50个。
启动一个新线程的成本很高,特别是当您达到. NET提供的全局线程池限制时。在这种情况下,由于限制,每500毫秒只创建一个新线程。
因此,一旦Backlog处理完一个项目,它将使其保持等待状态(SpinningDown)5秒,而不是退出线程。如果在此期间仍有更多的Backlog要处理,同一线程将处理Backlog中的另一个项目。
如果在这5秒内没有需要处理的Backlog项目,则线程将退出,这最终将导致忙碌(现有)线程减少。
当然,这只会发生在最小计数以上的线程上,因为即使没有工作要做,这些线程也会保持活动状态。

相关问题