VMWare Whitepaper on how to run the AppMon Server in VMWare. Most of it is not specific to the AppMon Server but can also be applied to any other Java Application.
Virtual Machine prerequisites
Dynatrace AppMon requires dedicated\entitled cores, memory and disk for the server via a VMWare resource pool. Overcommitment of cores or memory can cause performance problems during data collection and force the server to skip some data such as PurePaths.
VMWare, if not otherwise instructed, will over-commit on available physical memory. That means you can have 4 VMs with each having 4 GB memory and physical hardware with only 12GB.
The vHost can instruct the VM not to use a portion the assign memory, this is called ballooning. This allows VMWare to dynamically assign available memory from one VM to the other. This can cause the VM to swap out processes, are parts of them, it is running.
Swapping in general can harm application performance but it is particular harmful to java applications as a java applications memory is cycled through all the time. This is especially true for our dynaTrace server! Thus the whole of a java program must be in physical memory all the time.
Rule: The VM running the dynaTrace Server must get enough reserved memory in order to accommodate the whole AppMon Server plus the operating system.
For most processes VMWare recommends to only have a single virtual CPU for a VM. This reduces the management overhead on both the guest system and VMWare. A single virtual CPU however has the same impact as a single physical CPU. Only a single thread at a time can be executed. The AppMon Server has a lot of threads and it must therefore be an exception to this rule. In addition you also need to note that VMWare cannot parallelize something that is not executed in parallel by the VM. That means a VM with 2 vCPUs can never use more than 2 physical CPUs at the same time. In that regard we are depending on the power of the physical hardware.
Rule: The number of vCPUs depends on the size of the setup and you should take the number of cores from the deployment guide as a base.
I/O and Network
The Server writes a lot of data to disk for session recording, receives a lot of data and also sends a lot data to the database. Disk and Network are still shared resources in a VM though, so you need to make sure to have enough resources reserved to the Server VM.
You should take the deployment guide as a guide line for Network load.
- Separate Network Switch for incoming traffic to the AppMon Server. See the bandwidth requirements
- Make sure that all other traffic (database, client, harddisk) is taking a different physical network switch
- Disks are mostly connected via SAN to a virtual machine, make sure the network switch can take the load and if possible is dedicated to the usage of the SAN.