Hystrix 性能开销

Hystrix performance overhead

我正在使用 Hystrix 结束我的几个服务调用(调用的 99 个百分位约为 200 毫秒)。我的 hystrix 配置看起来像

- 核心尺寸:80
- executiontimeoutinMilliSeconds:600
- metricsRollingStatisticalWindowInMilliseconds:10000
- metricsRollingStatisticalWindowBuckets:10
(其余均为默认值。)

一直在我的应用程序中观察到一个奇怪的行为(虽然是断断续续的)。大多数时候,服务调用似乎工作正常,没有任何 hystrix 超时(只有几个调用在一个小时左右超时)。
但是偶尔hystrix 超时确实会增加很多倍
在分析原因时,我唯一能掌握的是我在hystrix中的execute-latency(我实际业务逻辑的延迟,在我的 HystrixCommand 中的 运行 方法)比 total-latency 少得多(hystrix 从调用执行开始所花费的总时间() 在获取实际响应的命令上)。

问题:
1. 为什么我的执行延迟和总延迟之间存在如此巨大的差异(执行比总延迟小得多)。这种开销的可能原因是什么。 (PS : 我的服务器qps不到10)
2.是否有与此开销相关的文档?我怎样才能找出这里的实际瓶颈?

任何线索将不胜感激。

我们遇到了完全相同的问题,通过移动到 1 解决了这个问题。5.x

引用自 - https://github.com/Netflix/Hystrix/releases/tag/v1.5.0

Bucket rolling now happens via Rx background threads instead of unlucky Hystrix command threads. This makes command performance more predictable. User-thread latency is now practically indistinguishable from command latency.