, ,

Anatomy of a virtual machine: vCPU, vRAM, disk and NIC (VMware for Beginners, Part 5)

A virtual machine is just four parts: a vCPU, vRAM, a virtual disk and a virtual NIC. Here is what each one really does, the sane default for each, and the beginner traps that catch new admins.

VMware for Beginners · Part 5 of 18
TL;DR: A virtual machine is four virtual parts plus a config file: a vCPU (slices of a real processor), vRAM (memory), a virtual disk (a VMDK file sitting on a datastore), and a virtual NIC (its network card). You size each one from a dropdown, not with a screwdriver, and you can change most of them later. Give a VM only what it needs, pick a thin disk and a VMXNET3 NIC for most jobs, and install VMware Tools or a surprising number of features quietly go missing.
Who this is for: Freshers and brand-new IT staff who can already say what a hypervisor is, but have never opened a VM settings page and wondered what every box actually means. No prior virtualization experience needed.

Your team lead drops a ticket on you: stand up a virtual machine for a new app. Four CPUs, eight GB of RAM, a hundred GB disk. You open the new VM wizard and a dozen fields stare back. Sockets or cores per socket? Thin or thick disk? E1000 or VMXNET3? Which SCSI controller? Nobody walked you through it, and choosing wrong in this exact spot is how a VM ends up slow, out of disk space, or sitting there with no network on its first morning.

Here is the calmer way to see it. A VM is a build-to-order computer where every part is a setting instead of a physical component. On a real PC you choose a processor, sticks of RAM, a drive and a network card, then screw them in. A VM has the same four parts, but you pick each from a menu, and you can resize most of them later without touching hardware. Learn to name those four parts and the one sane default for each, and that intimidating wizard turns boring. Boring is the goal.

The four parts, at a glance

Every VM you ever build is some combination of the same four virtual components, plus a small text file (the .vmx config) that records your choices. Here is the whole map before we zoom into each piece.

Virtual partPhysical equivalentWhat you setSane default
vCPUThe processorNumber of vCPUs, cores per socketStart at 2, grow only if proven
vRAMThe memory sticksAmount of memoryWhat the app docs ask for, no more
Virtual diskThe hard driveSize, thin or thick, controllerThin, on a datastore with room
Virtual NICThe network cardAdapter type, port groupVMXNET3
Virtual machineGuest OS + VMware ToolsvCPUCPU slicesvRAMmemoryVirtual diskVMDK fileVirtual NICnetwork cardESXi host: real CPUs, real memory, real disks, real network cards
The four virtual parts live inside the VM. ESXi hands them real hardware underneath.

vCPU: slices of a real processor

A vCPU is the part people misread the most. A virtual CPU is not a private, dedicated physical core that belongs to your VM. It is the right to be scheduled onto a real core whenever your VM has work to do. ESXi has a scheduler whose whole job is to take all the vCPUs from all the running VMs and hand them time on the host physical cores, in tiny slices, fast enough that every guest believes it has its own processors.

Sockets versus cores per socket

The wizard splits CPU into two boxes: number of vCPUs, and cores per socket. For almost every VM you will ever build, the simple answer is to set the total you want and leave cores per socket alone, which gives you that many single-core sockets. The setting exists for software licensed per physical socket, where you might present, say, 8 vCPUs as 2 sockets of 4 cores to fit a licence. If no licence is forcing your hand, do not overthink it. A VM does not run faster because you arranged its cores into a prettier shape.

More vCPUs is not more speed

Here is where I will disagree with the instinct every fresher has. When a VM feels slow, the reflex is to add vCPUs. Most of the time that makes things worse, not better. ESXi prefers to find enough free physical cores at the same moment to run all of a VM vCPUs together. Give a VM 8 vCPUs on a busy host and it now has to wait for 8 cores to come free at once, so it sits in a queue. That wait shows up as a metric called CPU Ready, the percentage of time a vCPU was ready to run but had to wait for a physical core. As a rough field rule, once CPU Ready climbs past roughly five percent per vCPU, users start feeling the lag. Oversized VMs are one of the most common causes of slowness I have seen junior admins create while trying to fix slowness.

The official maximums are huge. vSphere 8 supports up to 768 vCPUs on a single VM. You will almost never see double digits in a normal first job. Web servers, app servers and small databases usually live happily on 2 to 4. Start small, watch the actual usage, and grow only when the numbers prove you need to.

VM A2 vCPUVM B4 vCPUVM C2 vCPUESXi CPU scheduler4 physical cores serve 8 vCPUs by taking turns
Eight vCPUs, four real cores. The scheduler shares them in slices, which is why oversizing causes queueing.

vRAM: configured is not the same as used

Virtual RAM is the amount of memory the guest OS believes it has. The number you type is the ceiling, not a permanent reservation of host memory. A VM configured with 8 GB might only actively touch 2 to 3 GB most of the day, and ESXi is smart about only backing the memory that is really in use. That lets a host run VMs whose configured memory adds up to more than the physical RAM installed, which is called memory overcommitment.

It works well right up until too many VMs get busy at once. When the host runs short, ESXi reclaims memory using techniques like the balloon driver, which is part of VMware Tools and politely asks the guest to give back pages it is not using. If pressure gets severe, the host falls back to swapping memory to disk, and that is when guests crawl. The practical lesson for a fresher is the same as with CPU. Do not pad memory for comfort. Give the VM what the application actually needs, leave overcommitment to the host to manage, and watch for memory pressure on the cluster rather than on one VM.

In practice: A reservation locks a slice of host memory to one VM so it can never be reclaimed. Useful for a latency-sensitive database, wasteful as a default. Reserve deliberately, not out of habit, or you quietly shrink how many VMs fit on the host.

The virtual disk: a file that pretends to be a hard drive

The guest OS thinks it has a normal hard drive. In reality, that drive is a file (or a small pair of files) on a datastore, the shared storage ESXi uses. The format is VMDK. A typical virtual disk is a tiny descriptor file ending in .vmdk that holds the settings, plus a large flat file that holds the actual data. Delete the wrong VMDK and you delete a disk, so treat these files with respect.

Thin versus thick, the choice that catches people out

When you create a disk you choose how its space is allocated. The three options sound technical but the idea is simple.

Disk typeWhat it doesGood for
ThinTakes only the space data actually uses, grows on demand up to its sizeMost VMs, labs, anywhere you want to use storage efficiently
Thick lazy zeroedReserves the full size up front, zeroes each block on first writeSteady workloads where you want space guaranteed
Thick eager zeroedReserves the full size and zeroes all of it immediately at creationCases that require it, such as certain clustering features

The common advice you will read is blunt: use thick provisioning for anything performance-sensitive and avoid thin in production. I think that advice is dated for most workloads on modern all-flash storage, where the gap between thin and thick is small and the storage efficiency of thin is real money saved. I run thin by default and reach for thick only when something specifically asks for it. That is my opinion, and a senior admin at your shop may have a house rule that overrides it. Ask what the local standard is, then follow it.

Gotcha

Thin disks let you hand out more virtual disk space than the datastore physically has. That is fine until the VMs grow into it. If a datastore fills to 100 percent, every VM with a thin disk on it can freeze at once, because none of them can write. The classic trap is a forgotten log file or a runaway snapshot quietly inflating thin disks until the whole datastore hits the wall. Monitor datastore free space, not just per-VM disk size.

Thick: 100 GB reserved up front100 GB claimed on the datastore, used or notThin: grows as data is written12 GBthe rest fills in only when you write to it
Same 100 GB disk to the guest. Thick reserves it all now, thin uses only what is written.

One more box on the disk screen is the SCSI controller, the virtual device the disk attaches to. New VMs often default to an LSI Logic SAS controller, which works everywhere. For a disk that will push heavy input and output, the VMware Paravirtual controller (PVSCSI) gives more throughput with less CPU cost, the same paravirtual idea you will meet again with the network card. For a normal first VM, the default is fine; remember PVSCSI exists for when a database team asks why their disk is the bottleneck.

The virtual NIC: where new VMs lose their network

The virtual network card connects the VM to a port group, which is its doorway onto the network. The choice that matters is the adapter type, and there are two you will meet constantly: E1000 (and its sibling E1000E) and VMXNET3.

E1000 is a software emulation of a real Intel gigabit card, the 82545EM. Its one advantage is that almost every guest OS already ships a driver for that chip, so the network works the instant the OS boots, no extra software needed. VMXNET3 is different. It is a paravirtual adapter, meaning it was designed for virtualization rather than pretending to be old hardware. It gives higher throughput and lower CPU usage, and it is what VMware recommends for nearly every modern guest.

Gotcha

Build a VM with a VMXNET3 card, install a fresh copy of Windows, and you may find it has no network at all. The reason trips up every fresher once: the guest OS does not ship a built-in VMXNET3 driver. That driver arrives with VMware Tools. So a brand-new install sees the card but cannot use it until Tools is installed. People burn an hour checking switches and port groups when the real fix is to install VMware Tools. I still pick VMXNET3 anyway, because the fix is one install and the payoff lasts the life of the VM.

VM withVMXNET3Install OSno networkInstallVMware ToolsNetwork works
The VMXNET3 driver comes from VMware Tools, so the network only lights up after Tools is installed.

VMware Tools: the part everyone forgets

VMware Tools is a small package you install inside the guest OS, and it keeps coming up because it quietly powers a lot of what makes a VM behave well. It supplies the paravirtual drivers for VMXNET3 and PVSCSI, the balloon driver that helps the host reclaim memory, time sync, a heartbeat that lets features like High Availability know the guest is alive, and the ability to take a clean, quiesced snapshot. A concrete tell that Tools is missing: in vCenter, the graceful Shut Down Guest and Restart Guest options are greyed out, because there is nothing inside the VM to receive that request. Treat installing VMware Tools as the last required step of every build, not an optional extra.

Worked example: right-sizing instead of guessing

Say your host has 2 sockets of 16 cores, so 32 physical cores. You are asked to run 40 small app VMs on it. The ticket template says 4 vCPUs each out of habit. That is 40 times 4, which is 160 vCPUs riding on 32 cores, a 5 to 1 ratio. Light apps can survive that, but the scheduler now has to line up 4 cores at a time for every VM, and CPU Ready creeps up across the cluster.

Now you check real usage and most of these VMs peak at well under 2 vCPUs. Drop them to 2 vCPUs each. That is 80 vCPUs on 32 cores, a 2.5 to 1 ratio, and each VM only needs 2 free cores to run, so it waits far less. Same hardware, same 40 VMs, noticeably snappier, just because you stopped handing out CPUs nobody used. Right-sizing is the cheapest performance fix you will ever make.

Real interview question: “A user says their VM is slow and asks you to add more vCPUs. What do you do?”

A weak answer just adds the vCPUs. A strong answer says: first I would look at the metrics before changing anything. I would check CPU Ready and actual CPU usage on that VM. If usage is low but Ready is high, the VM may already have too many vCPUs and is waiting for cores, so adding more would make it worse. I would also rule out memory pressure and slow storage, since both feel like a slow CPU to a user. Only if the VM is genuinely CPU-bound, with high usage and low Ready, would I add vCPUs, and I would do it in small steps. This shows you measure before you change, which is exactly the habit they are hiring for.

Try it yourself

You do not need a datacenter for this. Install the free VMware Workstation Player on your own machine, or use a nested ESXi lab if you have one. Create a new VM but do not install an OS yet. Open its settings and find all four parts: the vCPU count, the memory, the disk, and the network adapter.

Now the disk experiment. Create the virtual disk as thin, sized at 20 GB. Power the VM on, install a small OS, then look at the actual .vmdk file on your real disk. The check that you got it right: the file on disk is only a few GB, far smaller than 20 GB, because thin only stores what was written. Change the network adapter to VMXNET3 and notice whether the guest gets an IP before and after installing VMware Tools. Seeing the no-driver moment once means you will never be fooled by it on the job.

Why this matters in your first job: Most of your early tickets will be some version of build a VM, resize a VM, or figure out why a VM is slow. Every one of those is really a question about these four parts. Knowing that vCPUs are shared time, that thin disks can overfill a datastore, and that VMXNET3 needs VMware Tools will let you solve problems your teammates expect to take a senior. It also stops you making the oversize-it mistake that quietly hurts the whole cluster.

FAQ

Is a vCPU the same as a physical CPU core?
No. A vCPU is scheduled time on a physical core, not a core of its own. Many VMs share the same physical cores, and ESXi hands out slices fast enough that each guest feels like it has dedicated processors. Only under heavy contention does the sharing become visible as CPU Ready time.

How many vCPUs should I give a VM?
Start with the minimum the application asks for, often 2, and grow only when measurements prove it is CPU-bound. More vCPUs can slow a VM down on a busy host because it has to wait for that many cores to free up at once. Right-sizing beats guessing every time.

Thin or thick provisioning, which should I pick?
Thin for most workloads, since it uses only the space actually written and saves storage. Use thick when a specific feature or a local house rule requires it. Whichever you choose, watch datastore free space, because thin disks can overcommit a datastore and fill it.

Why does my new VM have no network?
The most common reason is a VMXNET3 adapter with no driver yet. That driver ships with VMware Tools, so a fresh OS install will not have network until you install Tools. Check that before you start blaming switches or port groups.

Can I change vCPU, RAM or disk after the VM is built?
Yes. You can grow a virtual disk and, on supported guests with the right settings, even hot-add CPU and memory while the VM runs. Shrinking is harder and riskier, which is another reason to start small and grow rather than oversize from day one.

Your move

You can now read any VM settings page and know what every box does and why. Next we leave the single VM and look at where its disk actually lives: datastores and the storage that holds every VM on the host.

Open the full VMware for Beginners guide and pick your next part.

Go further when you are ready: New to the cloud side too? The companion Cloud for Beginners series builds the same foundations for public cloud. Want the advanced, current-day picture of how VMware ships today? See the VCF Automation series once these basics feel comfortable.
VMware for Beginners · Part 5 of 18
« Previous: Part 4  |  Complete Guide  |  Next: Part 6 »

References

About The Author


Discover more from Journal of Intelligent Infrastructure – By Dr Pranay Jha

Subscribe to get the latest posts sent to your email.

Leave a Reply

Your email address will not be published. Required fields are marked *

Architect’s Toolkit

About the Author

Dr. Pranay Jha is a Cloud and AI Consultant with 18+ years of experience in hybrid cloud, virtualization, and enterprise infrastructure transformation. He specializes in VMware technologies, multi-cloud strategy, and Generative AI solutions. He holds a PhD in Computer Applications with research focused on Cloud and AI, has published multiple research papers, and has been a VMware vExpert since 2016 and a VMUG Community Leader.

Discover more from Journal of Intelligent Infrastructure - By Dr Pranay Jha

Subscribe now to keep reading and get access to the full archive.

Continue reading