Accounting for z/VM and Linux under z/VM

Many installations are asking for information on how to accomplish accounting and chargeback for the Linux on z/VM environment. ESALPS was designed to meet this requirement and is used by many installations for this function.

When one department runs on one server, or one application runs on one server, charge back is not difficult - charge the department for the server plus overhead. But when there may be 100 servers on one z/VM system, how should a company charge for the resources?

This is not a new problem, but one that was identified in the early years of time sharing. Charging for the resources consumed by the server meets the requirements of most installations. The resources consumed that installations charge for are generally CPU, storage, and I/O.

Technical Requirements: There are many technical requirements that must be met for a chargeback system, all of which are satisfied by ESALPS. Two other vendor products can claim this - and both products utilizes ESALPS to provide the input data.

  • Both z/VM and Linux data is required: From the virtual machine perspective, there are resources used that Linux can not measure such as real storage requirements or I/O issued.
  • Accurate data: This may sound like a non-issue, but as all Linux process data coming from Linux in a virtual environment is very innaccurate, this is a serious issue documented by Velocity Software in 2001 in BADCPU.
  • Complete data: For data to be used for chargeback, there must be complete data. To acquire complete data from z/VM was provided by Velocity Software since 1990 with a 100.00% capture ratio. To get a capture ratio for Linux process data is more difficult. ESALPS provides this data with a very high capture ratio. As the Linux data does not have the fully architected instrumentation provided by z/VM, the capture ratio provided by ESALPS is usually reported in the "high 90's", typically 99%.
  • Low cost of data acquisition: Instrumentation was added to Linux by other vendors that will not work in the zLinux world. If the data collection for each server requires 5-10% of a real CPU, it becomes quickly the most chargeable application. Velocity Software's agent typically requires about .1% of a CPU to collect all of the accounting data.

Reporting details

There are multiple methods of performing chargeback. ESALPS provides reports and data to provide the following:

  • Virtual Machine chargeback When chargeback is only necessary at the virtual machine level, the ESAACCT report provides this data, charging for CPU, I/O and Storage in a service unit format.
  • Websphere application:CPU consumption at the Linux Websphere application level is provided on the ESALNXA report.
  • Linux USERID:CPU consumption at the Linux Userid and GROUP ID level is provided on the ESALNXU report.

Note that the data on any of these reports can easily be extracted directly from the database in a format more suitable to meet your particular requirements.

Sample Reports

ESAACCT: The following report provided by ESALPS shows the resources consumed by each linux server, and the charges applied to that server. Each resource consumed is converted to a service unit and accumulated, and then a charge per service unit applied. Thus each server has a charge for this period of time.

All service unit factors and charges are tailorable by the installation to meet the installation accounting requirements.


Report: ESAACCT      User Accounting Report                        Veloc
Monitor initialized:                      on 2084 serial 3667F     First
------------------------------------------------------------------------
Service Unit Virtual CPU Factor:    17777
Service Unit Overhead CPU Factor:   17777
Service Unit I/O Factor:            0.800
Service Unit Storage Factor:        0.500
Charge per Service Units:            0.00010
------------------------------------------------------------------------
UserID   <--Users-->    Charges  <---Resources Used---->
/Class   Logged Actv    /Sec   Total    Total     CPU   DASD I/O  Pages
-------- ------ ----  ------  ------   -------  ------  --------  -----
00:15:57     47 35.3   13574  12217K   1221.69  622.15    405496  1665K
System:       .    .  268.74  241867     24.19   13.61
 ***Key User Analysis ***
LINUX1        1  1.0   44.04   39638      3.96    1.79        88  15523
LINUX13       1  1.0   74.71   67236      6.72    3.31       396  15993
LINUX14       1  1.0  466.10  419492     41.95   21.04       446  90292
LINUX15       1  1.0  696.94  627249     62.72   30.94      2162   151K
LINUX16       1  1.0  1220.3   1098K    109.83   56.98      2588   167K
LINUX17       1  1.0  106.75   96078      9.61    4.96       331  15242
LINUX18       1  1.0  247.34  222602     22.26   10.65       459  65851
LINUX20       1  1.0  465.36  418826     41.88   22.59      1079  32666
LINUX22       1  1.0  2455.5   2210K    221.00  121.61     14908  72492
LINUX24       1  1.0   44.60   40143      4.01    1.74       182  18025
LINUX25       1  1.0   94.10   84689      8.47    3.94       742  28008
LINUX27       1  1.0   54.45   49001      4.90    2.30       263  15920
LINUX29       1  1.0  259.51  233562     23.36   10.34      5811  90185
LINUX30       1  1.0  165.24  148720     14.87    6.86       310  53141
LINUX31       1  1.0  886.54  797882     79.79   42.29     13347  70722
LINUX32       1  1.0  254.24  228817     22.88   10.10      4421  91315
LINUX33       1  1.0  279.96  251969     25.20   11.44      6923  86157
LINUX34       1  1.0   31.11   27995      2.80    1.06        55  18298
LINUX35       1  1.0  495.47  445928     44.59   21.78      1312   116K
LINUX37       1  1.0  269.65  242689     24.27   11.31      5515  74437
LINUX38       1  1.0  207.58  186820     18.68    9.44      3062  32946
LINUX39       1  1.0  353.44  318096     31.81   15.55      4766  75796
LINUX40       1  1.0  224.58  202122     20.21    9.76      3183  52256
LINUX41       1  1.0  203.57  183210     18.32    9.31      3089  30337