VMware VM performance comapre to same configuration physical server

We are planning to move 8 physical servers (dual core 2.x, 8 GB memory, 250 GB HDD, OS: Linux and windows 2003) to VM environment using VMware, but I am worried on VM performance. Our java application needs good IO to perform better

1.      To achieve similar performance in VM, how should I configure VMware ?
2.      Can I get one big server to accommodate all 8 servers or 2 or 3 servers?
3.       How many SCSI interfaces or SAN interfaces should I buy?

Who is Participating?
You'll find that most applications perform very similar to their physical counterparts.  The premise of VMWare is that most of your servers are using but a small fraction of the available resources so upwards of 90% of each physical box is wasted.  VMWare allows  you to more fully utilize the hardware you have.  

1.  If you have 8 windows servers you should easily be able to fit them on a single dual quad core with at least 64 megs of RAM... I usually say 16-32, but you mentioned java apps.  Provided that none of them are workhorse servers like Exchange 2007 with 300+ users, or high I/O oracle/sql databases this should be fine.  

- The next part of the question is how critical are these servers?  That will answer whether you need 1 or 2, and whether you need esx4 or esx4i.  ESX4 has features built in for High Availability (restart VM's in case of hardware failure), vmotion (Migrate machines to another piece of hardware with 0 downtime - useful for maintenance) and many other features that actually increase availability compared to the physical world.  With ESX4i you wont have any of these capabilities so any problems with a machine is downtime x 8.  
- Ideally you will be using some sort of SAN Storage, either iSCSI or FC.  This affords you all of the benefits of ESX4.  It is a good practice to seperate your OS drives and your data drives on seperate luns as data drives have very different I/O requirements and vary with the VM.  OS'es are pretty much identical.   DB's typically require more I/O from the disk and need a seperate Lun/datastore (thick) for both the DB AND the logs (even in a physical world).  Logs should be on different spindles than the DB for added resilience. This is especially true of large mail/sql/oracle databases.  Sometimes RAID 10 is your best option, though if the I/O of RAID 5 is acceptable stick with that.  As far as the C: drives VMWare recommends no more than 10 -15 vms per lun to avoid scsi contention.  OS vmdk's are perfectly fine to thin provision.  Thin provisioning doesnt have any inherent performance problems, but it does make it very easy to overallocate vm's which is not good.  
- if you're java apps are disk hungry consider dedicating RAID10 luns to them.  You should be able to get I/O specs using perfmon or vmware consolidator utility.  
- Network should always be redundant.  Recommend using 2 onboard ethernet, plus 4 port pci-e nics as well.  You should dedicate 2 seperate nics to service console, and 2 for iscsi if you choose iscsi.  The rest can be used for Virtual Machine traffic.
- SAN interfaces - at least 2 per ESX host and 2 per storage processor on the array.  In the FC world this usually means 2 hbas per host, and 4 for the storage array, split evenly across 2 fc switches.  

Specifically regarding the java application - I have had customers stack java applications on a huge single Windows box which uses gobs of memory.  In a VM world consider rethinking that strategy and spreading the java apps across multiple Windows VMs.  You dont pay the hw penalty with VMware and you will get better performance from Windows.  
1.      To achieve similar performance in VM, how should I configure VMware ?
- Install the latest esx4 or esxi4(free)
- all VMs on dedicated disk, better for DB to have its own dedicated disk
- all VMs must be installed with vmware tools and configure all VMs to use vmxnet3 virtual network adapter
- use only thick virtual disk(pre allocated)
- redundant storage & network adapters

2.      Can I get one big server to accommodate all 8 servers or 2 or 3 servers?
You can but if the load is intensive, you need more cores, so i recommend at least quad cores, dual core is very minimal
And ofcoz you need to buy more ram 8GB will not be sufficient for those java ram hungry apps

3.       How many SCSI interfaces or SAN interfaces should I buy?
Depends on what kind of storage you want to buy, fiber or iscsi
For redundancy you need at least dual ports to reach storage, but as a start local storage is fine, but when the business grows and you start to add up more esx hosts, you need shared storage to manage your VMs efficiently
Need a LOT more information.  Get specific on the I/O load for each O/S & application.  The biggie is optimizing for throughput is almost mutually exclusive with optimization for IOPs.  What is mix of read, write, random, sequential, small-block (4KB), largeblock(64KB) I/Os?

How many interfaces?  stop buying them when you saturate the bus or interface.  How many disks?   DO you care about redundancy? Any particular budget? How many GB or TB?  Do you mean SCSI from the physical connection perspective, or SCSI protocol, which allows for SAS?   SAN interfaces pretty much imply fibre channel?  

Once can certainly buy a single computer that has sufficient cores, memory bandwidth, and I/O capability to do the job, but do you want all of your eggs in one basket?  

I find it surprising that ANY java app would be I/O bound .. Java is almost always slow due to insufficient CPU resources.
mnchandra2009Author Commented:
thank you all
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.