数据请求超时怎么解决,请求响应慢导致超时怎么解决

首页 > 实用技巧 > 作者:YD1662023-11-24 22:31:08

图8 HTTP线程数突增

再看下总线程数是否有增加(排除 HTTP 线程数),如果有,说明有使用多线程导致线程数量增加。这个时候需要 Dump 下线程,看下哪些线程使用的比较多。

2)解决方案

通过工具类封装统一的线程池,提供动态配置参数和线程池监控能力。

效果:线程池具备监控能力,如下图是最小值(核心线程数)、最大值(最大线程数)和当前线程池中线程数量的监控,可以参考这个来调整线程池参数。

数据请求超时怎么解决,请求响应慢导致超时怎么解决(9)

图9 线程池水位线监控

高并发的场景下线程太多,线程调度时间得不到保障,一次任务需要多个 CPU 时间片,下一次调度的时间无法得到保障。

如下图是一个线程池执行耗时埋点,通过埋点发现 A 在线程池中执行的比较快,平均线和 P95 都在 10ms 以下,没有必要使用线程池,改成同步执行。

数据请求超时怎么解决,请求响应慢导致超时怎么解决(10)

图10 优化前执行耗时

效果:接口性能提升明显,平均线从 2.7ms 降低到 1.6ms,P99.9 从 23.7ms 降低到 1.7ms。

之前使用多线程,请求量有波动的时候线程增加比较多,导致线程调度时间得不到保障,体现到 P99.9 就很高。

数据请求超时怎么解决,请求响应慢导致超时怎么解决(11)

图11 优化前后耗时对比

另外可以明显看到总线程数也相应减少了很多。

数据请求超时怎么解决,请求响应慢导致超时怎么解决(12)

上一页12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.