HP Virtual Server Environment: Tips for Application Developers
Four component areas make up the HP Virtual Server Environment: (1) partitioning, (2) high
availability solutions, (3) utility pricing and (4) management and control software. A VSE solution is
architected by combining one or more components from two or more of these areas to address a
specific set of requirements (such as flexibility, availability, granularity, and isolation). For example,
virtual partitions (vPars) can be combined with Instant Capacity processors and Temporary Instant
Capacity under the control of the HP Global Workload Manager.
From an application point of view, VSE may introduce a degree of dynamic behavior that is important
to understand. There are three classes of VSE deployments worth considering separately:
Physical compute resources allocated to an nPar, a vPar or a pset based Resource Partition
may change dynamically while an application is running in that partition. For example, an
Instant Capacity core may be activated temporarily using TiCAP by the workload
management system; similarly, a core may be migrated from one vPar to another or from one
pset to another to respond to additional demand. Beginning with 11i v3, memory can be
dynamically added to or removed from a running OS. Most applications will be unaware of
changes in available resources. Some applications may choose to monitor changes to these
resource levels and modify their behavior to take advantage of additional resources (or to
scale back when resource levels are reduced).
Compute resources are allocated to an HP Integrity Virtual Machine or a fair share based
Resource Partition in fractions of a CPU, allocated as time slices on the physical hardware.
Even if resource allocations change over time, applications still have the same abstract view
of hardware, with the same CPU resources visible to the application.
Applications that run on an HP Serviceguard cluster also behave as they would on a
standalone server; however, for the application to be migrated across nodes on the cluster, it
must be configured and encapsulated in a “package.” Hence a cluster-ready package is
considered as a “cluster-aware” application. Note that the awareness is achieved by
wrapping a package and configuring I/O in a way that is cluster-aware, in addition to
following certain principles to make the application migratable.
This paper discusses the first two cases. For additional information on making an application cluster-
aware; see the References section.
Key Terms
Designing a VSE-aware application requires a clear understanding of the meaning of the terms CPU,
processor, core, Logical CPU, Virtual CPU and SPU. It also requires a clear understanding of the
distinctions between various partitioning mechanisms including hardware partitions (nPars), Virtual
Partitions (vPars), HP Integrity Virtual Machines (Integrity VMs) and Resource Partitions (both Processor
Set (pset) and Fair Share Scheduler (FSS) based).
Modern processor designs have changed the simple notion that one CPU consists of one piece of
silicon which executes one stream of instructions using one core instruction unit. HP documentation
has standardized on the following terminology:
A processor is one physical piece of silicon. It may contain one or more cores.
A core is a single processing unit contained on a processor.
A logical CPU (LCPU) is a single independent execution thread on a hyper-threaded core.
The first instance of logical CPUs on HP-UX are implemented on 11i v3, in support of
Montecito HyperThreads. This means each Montecito core can support two simultaneous
execution threads, in which case there are two LCPUs per core. This capability is turned off
by default, but can be turned on, in11i v3. Each pset can either have LCPUs enabled or not,
independent of other psets in the same OS. Note that HyperThreads were first introduced in
Montecito processors. They are not present in earlier Itanium processors or in PA processors.