We are new to virtualization and i have to plan for VMs we plan to move around 250 machines and 20 applications VM world
Please help with your recommendations.
We will be moving web application to VM world .
I would not consider these apps to be extermely CPU intensive (more like order management applications)
We will have 12 core 71 GB RAM linux servers (2 CPU)
1) How many vCPU Should we allocate per JVM (each jvm will have 2GB)
2) Because we are new to vmware we were planning to map 1 pcore = 1 vCPU ; so our plan was 3 virtual machines with 4 vCPUs per physical host
Do you see any problem with it? Or is there any better approach
3) Based on the above(1 pcore = 1 vCPU) our plan was 1.5 vCPU per JVM? Any concern or recomendation?
4) Do you see any issue if i have 3 JVM on a 6 vCPU virtual Machine (but i am sure that kind of CPU will not be used by aplication) vCPU not used on VM ? is it a drain on performance?
5) Is better to oversubscribe vCPU ? say 18 vCPU on 12 core machine?
6) If i oversubscribe will i run into problems for high availability when the physical server crashes?
7) Any recomendation for moving say 12 JVMs to VMs if you are asked to buy 12 core 71GB Servers ? (say how many servers you will use? How many VMs you would create per server and how many vCPU you will have per VM) - along with HA
Thank you for your help in advance ! This will help us a long way in moving huge number of servers/applications to VM
There are two forms of CPU capacity to worry about:
Typically, best practice is to allocate the minimum amount of vCPUs (often 1) and increase as needed (i.e. when the amount of GHz allocated that VM is being sufficiently used). Many people acheive a vCPU:pCPU ratio between 3:1 and 5:1 (and sometimes higher) without noticeable performance degredation. The way to measure performance degredation is a metric called CPU Ready in vCenter. You can get a lot of the details behind CPU Ready (as well as a link to a video) from this blog post:
In your situation, however, if these virtual servers are as CPU intensive as you lead me to believe, it's possible that you may run into a GHz bottleneck before you get to a typical vCPU:pCPU ratio. In that case, you'll want to also be monitoring CPU usage at not only the virtual machine (to make sure it has enough allocated), but also at the host level (to make sure you have enough hardware). As long as your VMs have enough allocated and your host isn't saturated in CPU usage, I would continue to monitor CPU Ready to make sure you don't encounter CPU contention.
Let me know if this helps or if you have further questions.
Thank you very much Jonathan. It was helpful inunderstanding vCPU . Blog has lot of information and i will read through it.
In My Case our applications are not CPU intensive . Sorry if i was not clear earlier.
My problem is Unix team would like to play safe and they insist that we plan 1 vCPU = 1 pCPU (All - including me are New to VM)
I think we should use more like 2 vCPU = 1 pCPU , but unix thinks if one server crashes and all VM fail over to 2nd machine , 2nd machine will run into problems for CPU . I think if i keep both machines pCPU utilization under 50% , even if one server crashes we will be fine.(When 2 vCPU = 1 pCPU)
Any recomendation for moving say 12 JVMs to VMs if you are asked to buy 12 core 71GB Servers ? (say how many servers you will use? How many VMs you would create per server and how many vCPU you will have per VM) - along with HA
Oh, you said "not" extremely CPU intensive. You wrote it correctly, I just misread it.
Yeah, so I bet you would be able to get a decent vCPU:pCPU ratio without much worry. You will more than likely run out of memory long before you run into CPU constraints.
For 12 JVMs, you could do fine with one or two physical servers of that size. The reasons you might want two instead of one:
Otherwise, I'm thinking you'll be fine with 12 cores and 71 GB of RAM.