|
Contents | Previous | Next
Performance Improvements
In Summary of Key Findings,
this report gives capsule summaries of the major
performance items
Dynamic Memory Upgrade,
Specialty Engine Enhancements,
DCSS Above 2 GB, and
TCP/IP Ethernet Mode.
The reader can refer to
the key findings chapter or
to the individual enhancements' chapters
for more information on these major items.
z/VM 5.4 also contains several additional
enhancements meant to
help performance.
The remainder of this article describes
these additional items.
Additional Performance Items
Guest DAT tables:
In z/VM 5.4, DAT segment and region tables that map guest
address spaces,
known collectively as upper DAT tables,
can now reside either above or below
the 2 GB real bar.
This work was done
to relieve constraints encountered in looking
for real frames to hold such tables.
The constraints come from the idea that
each of these
tables can be several pages long.
The System z
hardware requires each such table to be
placed on contiguous real storage frames.
Finding contiguous free frames below
the 2 GB bar can be difficult compared to finding
contiguous frames anywhere in central storage,
especially in some workloads.
Though IBM made no specific
measurements to quantitate the performance improvements
attributable to this
enhancement, we feel mentioning the work in this report
is appropriate.
CMM-VMRM safety net:
VM Resource Manager (VMRM) tracks the
z/VM system's storage contention situation and uses the Cooperative
Memory Management (CMM) API into Linux as needed, to ask the
Linux guests to give up storage when constraints surface. In our
VMRM-CMM and CMMA article, we illustrated
the throughput improvements certain workloads achieve when VMRM
manages storage in this way.
As originally shipped,
VMRM had no lower bound beyond
which it would refrain from asking Linux guests to give up memory.
In some workloads, Linux guests that had already
given up all the storage they could give
used excessive
CPU time trying to find even more
storage to give up, leaving little
CPU
time available for useful work.
In z/VM 5.4, VMRM has been changed so that it
will not ask a Linux guest to shrink below 64 MB.
This was the minimum recommended virtual machine size
for SuSE and RedHat
at the time the work was done.
This VMRM change is in the base of z/VM 5.4 and is orderable
for z/VM 5.2 and z/VM 5.3 via APAR VM64439.
In a short epilogue
to our VMRM-CMM article, we discuss the effect of the safety
net on one workload of continuing interest.
Virtual CPU share redistribution:
In z/VM 5.3 and earlier, CPU share setting was always
divided equally among all of the nondedicated virtual
processors of a guest, even if some of those
nondedicated virtual CPUs were in stopped
state. In z/VM 5.4, this is changed. As VCPUs start
and stop, the Control Program redistributes share, so
that stopped VCPUs do not "take their share with them",
so to speak. Another way to say this is that a guest's
share is now
divided equally among all of its nondedicated, nonstopped
virtual CPUs. CP Monitor emits records when this happens,
so that reduction programs or real-time monitoring programs
can learn of the changes.
Linux on System z provides a daemon
(cpuplugd) that automatically
starts and stops virtual
processors based on virtual processor utilization and workload
characteristics, thereby exploiting z/VM
V5.4 share redistribution.
The
cpuplugd daemon is available with SUSE
Linux Enterprise Server (SLES) 10 SP2. IBM is working with
its Linux distributor partners to
provide this function in other Linux on System z distributions.
Large MDC environments:
In z/VM 5.3 and earlier,
if MDC is permitted to grow to its maximum
of 8 GB, it stops
doing MDC inserts. Over time, the cached data
can become stale, thereby decreasing MDC
effectiveness. z/VM 5.4 repairs this.
Push-through stack:
Students of the z/VM Control Program are aware that
a primary means for moving work through the system is to
enqueue and dequeue work descriptors, called CP Task Execution Blocks
(CPEBKs), on VMDBKs. Work of system-wide importance
is often accomplished
by enqueueing and dequeueing CPEBKs on two special
system-owned VMDBKs called SYSTEM and SYSTEMMP.
In studies of z/VM 5.3 and earlier releases, IBM found that
in environments requiring intense CPEBK queueing on SYSTEM
and SYSTEMMP, the dequeue pass was too complex and was inducing
unnecessary CP overhead. In z/VM 5.4 IBM
changed the algorithm so as to
reduce the overhead needed to select the correct block to
dequeue. IBM did make measurements of purpose-built,
pathological workloads designed to put large stress on SYSTEM and
SYSTEMMP, so as to validate that the new technique held up
where the old one failed. We are aware of no customer
workloads that approach these pathological loads' characteristics.
However,
customers who run heavy paging, large multiprocessor
configurations might notice some slight reduction in T/V ratio.
Virtual CTC:
On z/VM 5.3, VCTC-intensive workloads with buffer transfer
sizes greater than 32 KB could experience performance
degradation under some conditions. On workloads where we
evaluated the fix, we saw throughput improvements of 7%
to 9%.
VSWITCH improvements:
z/VM now dispatches
certain VSWITCH interrupt work on the SYSTEMMP
VMDBK rather than on SYSTEM. This helps reduce serialization
for heavily-loaded VSWITCHes.
Further, the Control Program now suppresses
certain VSWITCH load balance computations
for underutilized link aggregation port groups. This reduces
VSWITCH management overhead for cases where link aggregation
calculations need not be performed.
Also,
z/VM 5.4 increases
certain packet
queueing limits, to reduce the likelihood of packet
loss on heavily loaded VSWITCHes.
Finally, CP's error recovery for stalled VSWITCH QDIO
queues is now
more aggressive and thus more thorough.
Contiguous available list management:
In certain storage-constrained workloads, the internal constants
that set the low-threshold and high-threshold values for the
contiguous-frame available lists were found to be too far apart,
causing excessive PGMBK stealing and guest page thrashing.
The constants were moved closer together, in accordance with
performance improvements seen on certain experimental
storage-constrained Linux workloads.
Contents | Previous | Next
|