提供方耗时正常,调用方毛刺频频

💡 原文中文,约2500字,阅读约需6分钟。
📝

内容提要

文章分析了调用方A与提供方B之间接口调用的耗时问题,识别了网络延迟、容器内存使用和垃圾回收(GC)作为主要瓶颈。监控数据显示,调用方的耗时高于提供方,主要原因是网络和GC延迟。最后,提出了增大堆内存和优化流量的解决方案。

🎯

关键要点

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

继续阅读