I've configured ESX 3.0 to virtualize a large number of Debian servers that run Tomcat 5.5. My server hardware is as follows:
Dell PowerEdge 1950, 2x Intel x5460 (Quad Core), 8GB RAM
Dell AX150i (iSCSI)
I have 8 VMs running on the ESX Instance with the following configuration:
VCPUs -2
Memory - 2GB
OS-Debian Etch
All of the VMs are used to host Tomcat Server, we are running version 5.5.
The problem is rather interesting actually. In a typical server environment, we wouldn't expect to see a high amount of CPU Utilization when a user simply accesses web pages on an app (all that is happening is tomcat is rendering pages). While it depends on what page of the hosted application the user accesses; CPU utilization on a simple page request on the VM can be as high as 35% on one CPU.
It is a bit scary as we've seen load tests where a single user simply clicks many pages rapidly and the CPU Utilization on the VM goes to 100% on both CPUs and the request is significantly delayed.
I've done some research into examining the CPU Utilization directly on the VM and realize that it may not be completely accurate; however there is definitely a correlation between high utilization (as seen in HTOP) and the slowness of the application on the tomcat instance on the VM.
Another interesting thing is that simply starting the tomcat service on one of the vm servers causes 100% CPU utilization on the servers, and will last for several minutes.
My question is...what could be wrong in my configuration to cause this behavior? Is there any optimization I need to do to reduce CPU utilization and improve the performance of my applications in the VM environments?
Start Free Trial