Java Agent对系统性能影响有多大

背景

背景现有基于Java Agent的产品比如APM(Application Performance Management)、诊断工具、跟踪工具、测试平台一般声称他们产品对系统性能影响大概是X%。事实上,Java Agent对原始Java应用程序的影响真的可以用一个简单的数字表示么?网上有篇文章Lies, damn lies and “our performance overhead is 2%”分析的比较有意思,下文主要是参考原始作者的文章进行阐述。

系统资源损耗

业务应用避免系统资源耗尽。引起这种问题的原因可能是业务应用本身,可能是Java Agent,也可能是同台主机上的其他进程。

  • CPU

CPU

  • 内存

内存

  • 磁盘空间和磁盘I/O

磁盘空间和磁盘I/O

  • 网络I/O

网络I/O

常见问题

  • GC

GC

  • 破坏JIT优化

破坏JIT优化

  • 更多

更多

结论

不要相信产品提供的通用数字。在自己的环境,打开和关闭Java Agent,测试对比系统性能比如吞吐量/延迟/TPS等。