Configuring and Migrating Memory on vPars
25
Memory Accounting
On any given system not all physical memory is available for application use. In a non-vPars system,
firmware takes some memory for its code and data structures before it hands over remaining memory
to the OS kernel and the OS kernel uses some memory for its code and data structures. The memory
taken by the kernel depends on the amount of memory and other resources (processors and memory)
in the system. In a vPars system, the vPars monitor that resides between operating system and
firmware consumes some amount of memory. The memory consumed by the vPars monitor can vary
from one vPars release to another. Currently, this ranges from 18MB to 40MB on a PA-RISC platform
and from 384MB to 512MB on an HP Integrity server. Each partition in a vPars system has its own
instance of OS kernel (that is, kernel code and data is not shared among partitions). Hence, the
kernel consumes each partition’s memory for its code and data. In addition, on an HP Integrity server,
each partition has its own instance of firmware which consumes around 32 to 64 MB. Again, this can
vary among firmware releases and platforms.
This chapter describes the tools available in A.04.xx and A.05.xx vPars releases to find the actual
memory assigned to each partition and the amount of memory consumed by the vPars monitor and by
the firmware. The tools described here do not account for the memory taken by each HP-UX OS
instance during boot or the memory consumed by the firmware instance of each partition. The
following lists the steps to account memory in a vPars system:
1. Find the total amount of ILM in the system using parstatus –p <partition number> -V.
2. Find the CLM from each cell in the system using parstatus –c <cell number> -V. Add the
CLM of each cell to get the total CLM.
3. Add the ILM and the total CLM to get the total memory in the system.
4. Find the memory bound to all the partitions using vparstatus –v command. Add the size of
user specified as well as monitor assigned memory ranges of all partitions to get the total
memory that has already been bound to the partitions.
5. Find the memory not bound to any partition using vparstatus –A command. Add the size of
each range to get the total memory not bound to any partition.
6. Find the memory consumed by monitor and firmware using vparstatus –m command. Add the
size of each range which is in bytes and then convert to megabytes (MB).
7. Add the amount of memory bound to each partition (step 4), the amount of memory not yet
bound to any partition (step 5), and the amount of memory consumed by firmware and vPars
monitor (Step 6) to get the total memory seen by vPars monitor during boot.
8. The memory computed in step 7 should be equal to or very close to total memory in the system
computed in step 3.
To illustrate further, let us consider the similar setup discussed in the previous sections that has 4 GB of
ILM and 2 GB of CLM from cell 0 and 2 GB CLM from cell 2. The granule size is 512MB. The total
memory in the system is 8 GB (8192 MB). The partition vpar1 contains 1 GB of ILM and 1 GB of
CLM from cell 0 and partition vpar2 contains 1GB of ILM and 1 GB of CLM from cell 2. Running the
command vparstatus–v to find out the memory ranges bound to the partition results in the following
output (only memory related information is shown here).
Name: vpar1
State: Up