How does z/VM handle overcommitment?
z/VM is designed to run far more virtual machines than the underlying hardware resources would normally allow. It achieves this through sophisticated overcommitment of CPU, memory, and I/O, while still keeping performance predictable.
Hereβs how it works:
Overcommitment =
π Example:
z/VM:
π Result:
z/VM is especially powerful in memory overcommitment:
π Smart paging minimizes performance impact
π Example:
π Backed by:
z/VM continuously monitors:
And dynamically adjusts:
To avoid overload:
Overcommitment is more effective here because:
| Feature | z/VM | Typical x86 (VMware/KVM) |
|---|---|---|
| CPU overcommit | Very efficient | Good |
| Memory overcommit | Very aggressive | Moderate |
| Page sharing | Strong | Limited (modern restrictions) |
| Scalability | Thousands of VMs | Hundreds |
| Stability under load | High | Variable |
Think of a hotel:
z/VM:
z/VM handles overcommitment by:
β Time-sharing CPUs with intelligent scheduling
β Using advanced memory techniques (paging, sharing, ballooning)
β Multiplexing I/O efficiently
β Dynamically adjusting resources based on workload
π This allows massive consolidation (1000s of VMs) on a single IBM Z system while maintaining stability.