Hystrix性能开销

时间:2016-08-12 17:55:19

标签: performance hystrix

我正在使用Hystrix收集我的几个服务电话(99%的通话时间约为200毫秒)。我的hystrix配置看起来像是

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

在我的应用程序中一直观察到一种奇怪的行为(虽然间歇性地)。大多数情况下,服务调用似乎没有任何hystrix超时工作正常(一小时左右只有几个调用超时)。
偶尔 hystrix超时会增加多倍
在分析原因时,我唯一可以理解的是hystrix中的 执行延迟 (我的实际业务逻辑的延迟,在我的HystrixCommand的run方法中) ) total-latency (hystrix从命令上调用execute()到获取实际响应所花费的总时间)。

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

任何线索都将受到赞赏。

1 个答案:

答案 0 :(得分:2)

我们遇到了完全相同的问题,通过迁移到1.5.x

解决了这个问题

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

  

现在通过Rx后台线程而不是不幸的Hystrix命令线程进行存储桶滚动。这使命令性能更具可预测性。现在,用户线程延迟几乎与命令延迟无法区分。