亿级流量电商详情页系统实战-47.生产环境中的线程池大小以及timeout超时时长优化经验总结

1.介绍

生产环境里面,一个是线程池的大小怎么设置,timeout是什么时长?不合理的话,问题还是很大的。

在生产环境中部署一个短路器,一开始需要将一些关键配置设置的大一些,比如timeout超时时长,线程池大小,或信号量容量。然后逐渐优化这些配置,直到在一个生产系统中运作良好。

  • 一开始先不要设置timeout超时时长,默认就是1000ms,也就是1s
  • 一开始也不要设置线程池大小,默认就是10
  • 直接部署hystrix到生产环境,如果运行的很良好,那么就让它这样运行好了
  • 让hystrix应用,24小时运行在生产环境中
  • 依赖标准的监控和报警机制来捕获到系统的异常运行情况
  • 在24小时之后,看一下调用延迟的占比,以及流量,来计算出让短路器生效的最小的配置数字
  • 直接对hystrix配置进行热修改,然后继续在hystrix dashboard上监控
  • 看看修改配置后的系统表现有没有改善

2.优化经验

下面是根据系统表现优化和调整线程池大小,队列大小,信号量容量,以及timeout超时时间的经验。

假设对一个依赖服务的高峰调用QPS是每秒30次,一开始如果默认的线程池大小是10。

我们想的是,理想情况下,每秒的高峰访问次数 * 99%的访问延时 + buffer = 30 * 0.2 + 4 = 10线程,10个线程每秒处理30次访问应该足够了,每个线程处理3次访问。

此时,我们合理的timeout设置应该为300ms,也就是99.5%的访问延时,计算方法是,因为判断每次访问延时最多在250ms(TP99如果是200ms的话),再加一次重试时间50ms,就是300ms,感觉也应该足够了。

对于线程池大小来说,一般应该控制在10个左右,20个以内,最少5个,不要太多,也不要太少。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值