提供方耗时正常,调用方毛刺频频
💡
原文中文,约2500字,阅读约需6分钟。
📝
内容提要
文章分析了调用方A与提供方B之间接口调用的耗时问题,识别了网络延迟、容器内存使用和垃圾回收(GC)作为主要瓶颈。监控数据显示,调用方的耗时高于提供方,主要原因是网络和GC延迟。最后,提出了增大堆内存和优化流量的解决方案。
🎯
关键要点
- 调用方A与提供方B之间的接口调用耗时问题分析。
- 主要瓶颈包括网络延迟、容器内存使用和垃圾回收(GC)。
- 监控数据显示,调用方的耗时高于提供方,主要原因是网络和GC延迟。
- 调用方的耗时在个别情况下远高于提供方,达到5分钟以上。
- 排查思路包括分析调用方和提供方的容器、宿主机及网络环节。
- 容器内存使用率高达99%以上,建议降低该指标以改善性能。
- Java系统的容器内存使用率包含RSS和Page Cache,Page Cache会自动释放。
- 清除提供方B的日志后,调用方的耗时有所降低,但毛刺现象依然存在。
- 扩容后CPU和内存未见明显变化,调用方耗时基本无改善。
- 年轻代GC耗时较高可能影响调用方耗时,需进一步分析。
- 网络抓包分析显示,调用方和提供方之间存在延迟,主要由容器瓶颈和GC引起。
- 提出的解决方案包括增大堆内存、扩容和优化流量以减少新对象创建。
➡️