可能影响服务接口响应的原因
1/2 前后端分离:前端的请求由Nginx负载均衡转发
判断响应时间是否过长
- 浏览器F12查看“Resource Scheduling Duration”以及“Request/Response Duration”(其中“Waiting”一项对标后端业务处理总时间)
分析
- 网络不稳定(请求丢包)
- 当前环境内瞬时负载过高,导致某一时刻请求阻塞,工作负载过高整体业务处理能力降低
- Nginx自身配置的瓶颈可能会限制流量
2/2 前后端分离:后端接口业务处理时间
判断响应时间是否过长
- 计算本地接口响应时间(可分段计算各步骤的业务处理时间)
- 查看集群服务日志,计算容器内接口响应时间
- 查看GC日志,判断是否 GC 过于频繁或 Full GC 次数过多
分析
- 线程是否阻塞(主动/被动)
- SQL设计复杂/过多冗余查询,耗时较高
- 查看代码,是否非必要的循环过多/是否逻辑设计过于复杂
- 查看数据库,以Navicat为例:打开“工具”菜单栏中的“服务器监控”,查看当前接口使用的数据库的进程列表,是否存在其他持续占用数据库资源的进程
- 非高可用部署结构下的单点问题
- 服务器资源瓶颈:CPU利用率过高,内存使用量过高,磁盘IO负载过高等
- 单库单表,索引数据过大(可能存在无效索引占用内存),影响响应时间;特别是对基于内存的数据库,十分影响性能
Scroll Up