DevTest Agent Overhead

Document ID : KB000107001
Last Modified Date : 18/07/2018
Show Technical Document Details
Introduction:
The DevTest Agent is installed in a Java application and can be used to capture transaction path and details. 
Virtual Services and Baseline test can be created from the captured transactions.
These processes will effect the application but by how much...
Question:
What is the DevTest agent's overhead?
How will using the DevTest agent impact my application?
How will I know if my system is overloaded?
Environment:
All supported DevTest versions.
Answer:
Because every application and environment is different, it is impossible to predict how the agent will impact a given application.
However if you understand how the agent and broker process data, then it is easier to adjust for the additional load.
Note: Below assumes a default agent without any extension installed.

Agent
Capture and Playback
  1. Evaluates each transaction/object to determines if a transaction/object needs to be captured or sent to the VSE. For required transactions/objects: 
    1. Makes a copy. At this point there are two copies of the transaction/object; original and the agent's copy.
    2. Serializes the transaction/object and sends to the broker. This creates a third copy of the transaction/object.
    3. Marks all additional copies for garbage collection.
Capture Only
  1. Allows the original transaction/object to proceed as normal.
Playback Only
  1. Waits for reply from VSE.
  2. Marks original transaction/object for garbage collection.
  3. Sends response from VSE as if it were the response from the live service.
Broker
Capture
  1. Deserializes transaction/object from queue 
  2. Stitches transactions/objects together if needed.
  3. Writes transaction/object to database.
Playback
  1. Forwards request to the VSE.
  2. Forwards reply to the correct agent.
Additional Duties
  1. Pulls all information about transactions from the database used by the Portal, Workstation, etc...
  2. Monitors each agent for activity and heartbeats.
  3. Launches database cleaner at specified intervals.
As the payload and transactions per second increase, additional resources will be needed. In general:
  • Increase the JVM's max memory by 30% or more.
  • Additional CPU cycles will be required by the additional overhead.
  • A high performance garbage collector may be needed.
  • Use the ATK for additional tuning parameters. Please contact CA Support for assistance.
Overloaded Systems will have one or more of the following:
  • Application noticeably slows.
  • Application hangs 
  • The agent and/or broker drops connections
  • When recording, there are missing transactions.
  • GC or CPU Thrashing messages in the logs
Additional Information:
Not Applicable