Agent Performance Report for APM Insight Java Agent


Server Setup

  • Application Server - Apache Tomcat 7.0.29
  • JDK/JVM Environment - Oracle JDK 1.6.0_24
  • Operating System - Windows 7 (x64)

Application Setup

  • J2EE Web Application
  • MVC Frameworks used: Struts 2
  • ORM Frameworks used: Hibernate 4.2.19 Final
  • Database: MySQL
  • Cached Frameworks used: Memcached

Memory Consumption

  • The target web application is set to receive 300 requests per minute.
  • APM Insight Java agent is configured to track all transactions (web, non-web). The agent consumes 35 to 40 MB to track all the transactions getting served by the Application Server.
  • On increasing the throughput to the server to 600 requests per minute, the APM Insight Java agent consumes 80  to 100 MB, tracking all the transactions served by the application server.
  • In case of Application servers serving huge requests, memory consumption by the APM Insight Java agent can be reduced (if needed) by configuring the sampling factor.

Response Time Overload

  • Response time overload added by the APM Insight Java agent is directly proportional to the number of method calls being instrumented.
  • If the agent is set to track all the method calls happening in the transaction, the maximum response time overload will be 7% of the actual response time. On Minimal, Agent consumes 1% of the actual response time.

Network Bandwidth Usage

  • The communication between APM Insight agent and Applications Manager servers is of one-way HTTPS communication. The agent sends the performance metrics to Applications Manager server every one minute.
  • There will be 2 requests per minute from the agent to our Applications Manager servers.
    1. /arh/data  - carries metric data of all the transactions performed on the server, which will consume at the maximum of 100 KB.
    2. /arh/trace - carries traces of every transaction which consumed response time larger than the configured threshold level. A complete snapshot of the transactions will be sent. This can be used for better debugging. Maximum data size sent is around 4MB.