当前位置: 首页 > news >正文

接口访问速度突然变慢,怎么排查

现在大多数的业务都微服务化了,可能一个请求需要调用好几个甚至几十个ms才能拿到最终的结果,但是如果一旦中间某个servcie出现了问题,影响的将会是整条调用链路,就比如某个ms突然变的很慢,那么整个请求也会跟着一起变慢,怎么排查这个问题,然后怎么解决?

首先,使用现有的链路追踪器(比如现在比较流行的zipkin)查看在整个调用链路中,是哪个接口耗时时间过长,那么可能的原因有以下几点:

        1. 是否线程池配置的参数有问题,比如核心线程数,或者最大线程数是否合理

        2. 还是线程池,是否有多个业务共用一个线程池的场景,建议在资源允许的情况下,每个业务场景配置自己的线程池,一个是比较灵活,可以根据实际业务场景配置线程池的参数,防止配置过少或过多;二是防止某个业务场景访问量突然升高导致线程池阻塞影响其他业务的访问

        3. 是否有线程死锁

        4. 是否有大对象的频繁的深拷贝,比如for循环里对大对象深拷贝,会影响性能,还有就是有一些大对象的创建,可能会引起频繁的full GC

        5. 是否有频繁的hashmap扩容,或者其他集合类的频繁扩容

        6. 是否有使用本地缓存,比如caffeine等,当然没有使用本地缓存导致变慢可能不是当前接口的问题,有可能是下游接口变慢,但是如果当前接口使用了本地缓存,也可以不用直接调用下游接口,就可以减少一次调用提升性能

        8. 是否正确配置了数据库连接池的大小

        9. 接口是否有使用缓存,比如redis缓存

        10. 机器的cpu和内存是否打爆了

        11. 请求是否被合理的分发,比如之前使用的负载均衡模式是权重的模式,分配的依据是网络速度,但是现在这个权重大的机器网络速度突然变慢,但是大量的请求又都到这个机器上

        12. 类似11点,检查网络速度

        13. sql是否使用到了索引,或者是否正确的使用了索引

        14. 在使用锁或者synchronized的时候,是否同步的力度太大        

        15. 是否有内存泄漏或者内存溢出导致频繁的full GC

        16. tomcat连接数配置是否合理

        

http://www.dtcms.com/a/405869.html

相关文章:

  • C++ IO 库全方位解析:从基础到实战
  • 从“手机拆修”看懂POD与非POD的区别
  • vc无法启动
  • SenseVoice微调
  • 【C++】: list介绍以及模拟实现
  • dlib 实战:人脸检测、关键点定位与疲劳检测的全流程实现
  • SpringBoot 整合机器学习框架 Weka 实战操作详解:MLOps 端到端流水线与知识图谱融合实践
  • 华为OD最新机试题A卷双机位-单词接龙-2025年
  • Python 爬虫(豆瓣top250)-享受爬取信息的快乐
  • Kafka选举机制深度解析:分布式系统中的民主与效率
  • 一文读懂费用分析:定义、分类与成本费用区别
  • 全国做网站找哪家好做宣传海报的网站
  • 【Linux】基础IO(3)
  • 【Redis学习】Redis中常见的全局命令、数据结构和内部编码
  • AI行业应用深度解析:从理论到实践
  • AI 伦理审查破局:从制度设计到实践落地的 2025 探索
  • RocketMQ面试问题与详细回答
  • 多传感器数据融合到base_link坐标系下
  • 阿里新开源Qwen3-Omni技术解析
  • Flink 流式分析事件时间、Watermark 与窗口
  • 解析前端框架 Axios 的设计理念与源码
  • 使用IOT-Tree消息流InfluxDB模块节点实现标签数据的时序数据库存储
  • 【深入理解JVM】垃圾回收相关概念与相关算法
  • 文档抽取技术:金融保险行业数字化转型的核心驱动力之一
  • 神秘魔法?耐达讯自动化Modbus TCP 转 Profibus 如何为光伏逆变器编织通信“天网”
  • 做庭院的网站佛山网站专业制作
  • wordpress开启多站点营销云官网
  • 企业AI 智能体(AI_Agent)落地开源方案:Dify、n8n、RAGFlow、FastGPT、AutoGen和OAP深度梳理与对比分析
  • Day51 时钟系统与定时器(EPIT/GPT)
  • Django 搭配数据库开发智慧园区系统全攻略