Previous section.

UMA Data Pool Definition (DPD)
Copyright © 1997 The Open Group

Datapool Metrics

Introduction

This chapter establishes the Level 0 metrics and a proposed set of Level 1 metrics. The data is organized by classes in the following order:

Definitions for MLI Attributes

This section defines the headings used in the "MLI Attributes" columns of the tables that define the contents of metric and configuration classes.

Instance

Instance identifiers are typically mapped level-by-level to a sequential list of instance tags. Alternatively, the instance identifiers may be mapped as a data array. If this is the case, this will be so indicated in this column.

Offset

Applies to the built-in, or "Canonical C", form of data mapping in MLI data UDUs. This offset is the distance in bytes from the start of data entries in the subclass segment to the current data object or descriptor.

VLDS

Variable length data objects such as arrays and certain text strings are mapped into a section of an MLI data UDU message segment called the VLDS (Variable Length Data Section). The data objects are pointed to by descriptors in the fixed section of the segment.

Configuration Information Class

This class must provide enough information to determine a performance rating for the system. It is also intended to allow the topology of a system to be determined. For example the infomation that several disk instances share a common SCSI bus or are striped together into a logical volume may allow diagnosis of a problem.

Configuration data is expected to change infrequently, and an event signals that a change has occurred. All configuration classes generate an event to indicate when they need to be reread. To flag this in this document each subclass has a pseudo-metric event indicator.

To allow data in one subclass to refer to instances in other subclasses a new DCI type is required called a cross reference. It contains the last four digits of an OID and an instance identifier. UMA defines the root of the OID (1.2.826.0.1050.7) + datapool. The additional parameters define:

The implementation of this type is not yet defined. The current suggestion is that it be coded as an ASCII variable length string, which would be parsed by a management application. The suggested format of the string is to have the "." separated OID followed by an optional ":" and the metric instance. If in the future it would be useful to refer to OID's outside the datapool (for example, SNMP MIB), a full OID could be prefixed by a "/", analogous with the UNIX root filesystem. In practice all the initial UNIX datapool definitions will start with "1.". For example, "1.4.3.7:22" indicates the UNIX datapool, the 4th class, the 3rd subclass, the 7th metric and the 22nd instance.

The I/O configuration Subclasses, and the logical volumes are organized using the xref concept to tie them together. Where possible the xref is optional, so that the system could be represented as a collection of disconnected buses, controllers and disks if there is no way to determine the hierarchy. For logical volumes the xref is needed to tie the disks together into volumes.

The full device hierarchy is representable. It is not simple but neither are large systems. The information is available in all systems so it is part of the level 0 datapool. It can be cross-referenced by other metrics as needed and can be displayed by a management application. It is flexible enough to handle arbitrary I/O bus types, and storage controllers (channel, SCSI, fibrechannel) including targets that contain sub devices such as disk arrays, tape silos and optical jukeboxes. It maps to the c0t0d0s0 format used by several UNIXes, but allows c0t0s0 and sd0 formats to be used by skipping levels in the hierarchy.

Specific per-device configuration data cross-references a position in the hierarchy. Network and other io devices are included. Vendor specific utilization data can reference this hierarchy to indicate situations where too many devices are causing contention on a bus.

One simple example (Intel PC) and one complex (Multiprocessor Server) example are provided to show how the I/O configuration is intended to be used in practice.

The hierarchy is ordered in a top down manner, with upwards pointing references so that many lower level entries can reference one higher level entry. For example many I/O cards could be plugged into one I/O bus.

In the diagrams below (see Simple Configuration Example - Intel PC Running Solaris and Complex Configuration - MP Server with Mirrored Disk Arrays ), a few key metrics are shown for each class. Most classes have additional metrics that provide more detail.

Figure: Simple Configuration Example - Intel PC Running Solaris

The system configuration class outlines the system and the single CPU is described. The PCI bus has two devices, a SCSI host bus adapter (HBA) and an ethernet controller. The SCSI HBA controls three devices, a hard disk, a tape and a cdrom. The disk is divided into four partitions, each holding a filesystem or swap space. The ethernet is configured with an IP address. Three kernel tables have defined limits. Three possible scheduling classes are described.


Figure: Complex Configuration - MP Server with Mirrored Disk Arrays

Figure: Volume Config for Striped Filesystem Mirrored Across Controllers

The system configuration again gives the basic parameters and the four CPUs are described. The system backplane contains two independent I/O buses. The first SBus contains a SCSI HBA and Fast Ethernet controllers. The SCSI bus itself is described explicitly this time, its speed and width can be reported. A disk containing the OS and swap space, and a tape drive are connected to it. The Fast Ethernet has an IP address configured (multiple IP addresses and other protocols could be configured on the same interface). The second Sbus contains a Fiberchannel serial optical controller (soc) that has dual fiber interfaces. Two independent fiberchannel "buses" are described, each is connected to an intelligent storage array controller. Each array controller has multiple SCSI HBAs. In the diagram two per-array are shown, with off-page markers A,B, C and D.

The second diagram shows that two disks are connected to each SCSI HBA. In this case the SCSI bus configuration itself has been omitted for simplicity. A single large partition is configured on each of the eight disks. A set of four plexes are used to produce a stripe with a 128KB interlace. The plex configuration has two cross references, as it has to refer to a disk partition and a place in the volume hierarchy. In this case a pair of second level plexes configured as submirrors. They in turn refer to the volume device, which refers to the mounted file system configuration.

The kernel table and scheduler configuration classes have been omitted from the diagram through lack of space. They would be the same as the first example, but with different limit values.

Subclass - System Configuration

This class provides the basic configuration parameters for a system. The system description includes OS and machine vendor and compatability information, the identity of the machine (node name and optional domain name), and configuration counts for the primary system components. To see how many components are online or enabled their respective class instances have a status indicator that needs to be checked.

Some systems have the ability to dynamically increase these counts online, or may not recognise the presence of a device until it is first accessed. A config_change_event is generated if these values change.


The metric OID and description is shown along with a sample source for the metric and example value.

Data Attributes MLI Attributes
Label Level Data Type Units Example Offset VLDS Instance
  /DatumId         Object Array
OS_name 0/1.1.1 TEXTSTRING NOUNITS uname -s (sunOS) 0 Yes No
OS_release 0/1.1.2 TEXTSTRING NOUNITS uname -r (5.5) 8 Yes No
OS_version 0/1.1.3 TEXTSTRING NOUNITS uname -v (Generic) 16 Yes No
vendor_model_name 0/1.1.4 TEXTSTRING NOUNITS uname -i 24 Yes No
        (SUNW,SPARCstation-10)      
hardware_class 0/1.1.5 TEXTSTRING NOUNITS uname -m (sun4m) 32 Yes No
Processor_type 0/1.1.6 TEXTSTRING NOUNITS uname -p (sparc) 40 Yes No
nodename 0/1.1.7 TEXTSTRING NOUNITS uname -n (fred) 48 Yes No
page_size 0/1.1.8 UINT4 BYTES sysconf(_SC_PAGESIZE) 56 No No
clock_tick_freq 0/1.1.9 UINT4 HZ sysconf(_SC_CLK_TCK) 60 No No
cpu_timestamp_unit 0/1.1.10 UINT8 HZ hertz time unit of measurement 64 No No
cpus_configured 0/1.1.11 UINT4 COUNT sysconf 72 No No
        (_SC_NPROCESSORS_CONF)      
disks_configured 0/1.1.12 UINT4 COUNT   76 No No
tapes_configured 0/1.1.13 UINT4 COUNT   80 No No
networks_configured 0/1.1.14 UINT4 COUNT   84 No No
physical_memory_size 0/1.1.15 UINT4 MBYTES   88 No No
boot_timestamp 0/1.1.16 UINT8 TIMESTAMP   92 No No
domainname 0/1.1.17 TEXTSTRING NOUNITS (smcc.eng.sun.com) 100 Yes No
defaultrouter 0/1.1.18 TEXTSTRING NOUNITS blank if no default 108 Yes No
config_change_event 0/1.1.19 UINT4 NOUNITS - - - -

Table: System Configuration

Subclass - per-CPU Configuration

There is one instance of this subclass for each configured CPU. The status indicates whether the CPU is online, offline or failed. In some cases a CPU that has been taken offline may still be the target for device interrupts, but it will not have jobs scheduled onto it. Processor id is a system dependent value that should be used to label per-CPU data instead of the instance number. It is often non-contiguous on systems that do not have every CPU configured. Clock frequency of the CPU is vendor dependent. The cpu_clock_resolution is the unit for CPU usage metrics. It is often the same as the system clock tick frequency, but a high resolution CPU timer can be used to give more precise metrics. It is normally the same for every CPU, but some systems allow mixed CPU types and mixed clock rates, so it is replicated on a per-CPU basis.

Data Attributes MLI Attributes
Label Level Data Type Units Example Offset VLDS Instance
  /DatumId         Object Array
vendor_name 0/1.2.1 TEXTSTRING NOUNITS e.g. Intel 0 Yes No
vendor_cpu_designation 0/1.2.2 TEXTSTRING NOUNITS e.g. Pentium 8 Yes No
processor_id 0/1.2.3 UINT4 NOUNITS   16 No No
cpu_status 1/1.2.4 ENUMERATION NOUNITS   20 No No
    offline = 0 not in use at all      
    onforintr = 1 not scheduled, but takes interrupts      
    online = 2 normal operation      
    failed = 3 failed implies offline      
cpu_clock_frequency 1/1.2.5 UINT8 HZ e.g. 90,000,000 Hz 24 No No
cpu_timestamp_resolution 1/1.2.6 UINT8 HZ for CPU time measurement 32 No No
config_change_event 0/1.2.7 UINT4 NOUNITS - - - -

Table: CPU Configuration

Subclass - Backplane, I/O or Device Bus Instance

This subclass identifies the buses in the system. There may be a backplane or system bus and a number of I/O buses containing controllers. Strings of devices may use a common bus to connect to a controller. Cross references between the instances create the hierarchy. The controllers on each I/O bus xref the instance they belong to. Bus performance metrics belong in a vendor specific subclass that should xref this configuration subclass and instance.

The defined optional configuration data includes an xref to another bus instance that is typically the backplane that a number of I/O buses share. The bus_version is dependent on the iobus_type. The bus_clock_frequency and bus_width can be used to calculate a peak bandwidth. The bus_data_packet_max indicates the maximum number of bytes sent in a single transfer. The bus_status needs to be defined for each type of bus, as each bus implements a protocol with different failure states.

Data Attributes MLI Attributes
Label Level Data Type Units Example Offset VLDS Instance
  /DatumId         Object Array
bus_type 0/1.3.1 ENUMERATION NOUNITS   0 No No
    generic_io = 0 (generic I/O bus)        
    generic_sys = 1 (generic system backplane)        
    generic_device = 2 (device bus like SCSI)        
bus_id 0/1.3.2 UINT4 NOUNITS   4 No No
bus_label 0/1.3.3 TEXTSTRING NOUNITS string naming this bus, e.g. "SBus" 8 Yes No
parent_inst_xref opt/1.3.85 TEXTSTRING XREF xref to extend hierarchy 0 Yes No
bus_version opt/1.3.86 TEXTSTRING NOUNITS   8 Yes No
bus_clock_frequency opt/1.3.87 UINT4 HZ   16 No No
bus_width in bytes opt/1.3.88 UINT4 BYTES   20 No No
bus_data_packet_max opt/1.3.89 UINT4 BYTES   24 No No
in bytes              
bus_status opt/1.3.90 ENUMERATION NOUNITS type-specific status, for generic types 28 No No
               
    offline = 0        
    online = 1        
    failed = 2        
config_change_event 0/1.3.91 UINT4 NOUNITS - - - -

Table: Backplane, I/O or Device Bus Instance

Subclass - Device Controller Instance

Controllers are typically I/O cards of many different types that plug into an I/O bus, and control a string of devices. The type and label must be specified. The cross reference normally indicates which I/O bus the controller is attached to.

Optional metrics are defined that map onto mainframe channel controllers.

Data Attributes MLI Attributes
Label Level Data Type Units Example Offset VLDS Instance
  /DatumId         Object Array
controller_type 0/1.4.1 TEXTSTRING NOUNITS   0 Yes No
controller_label 0/1.4.2 TEXTSTRING NOUNITS string naming this controller (c0) 8 Yes No
iobus_inst_xref opt/1.4.85 TEXTSTRING XREF   0 Yes No
controller_vendor opt/1.4.86 TEXTSTRING NOUNITS   8 Yes No
controller_model opt/1.4.87 TEXTSTRING NOUNITS   16 Yes No
num_channels opt/1.4.88 UINT4 COUNT   24 No No
max_devices opt/1.4.89 UINT4 COUNT   28 No No
min_buf_mem opt/1.4.90 UINT4 KBYTES   32 No No
max_buf_mem opt/1.4.91 UINT4 KBYTES   36 No No
total_buf_mem opt/1.4.92 UINT4 KBYTES   40 No No
num_channel_paths opt/1.4.93 UINT4 COUNT   44 No No
status opt/1.4.94 ENUMERATION NOUNITS   48 No No
    offline = 0        
    online = 1        
    failed = 2        
path_address opt/1.4.95 TEXTSTRING NOUNITS   52 Yes No
config_change_event 0/1.4.96 UINT4 NOUNITS - - - -

Table: Device Controller Instance

Subclass - Local Area Network Controller Instance

Data Attributes MLI Attributes
Label Level Data Type Units Example Offset VLDS Instance
  /DatumId         Object Array
lan_type 0/1.5.1 TEXTSTRING NOUNITS e.g. Ethernet 0 Yes No
lan_label 0/1.5.2 TEXTSTRING NOUNITS e.g. le0, nf0 8 Yes No
MAC address 0/1.5.3 TEXTSTRING NOUNITS e.g. 8:0:20:1f:ab:cd 16 Yes No
MTU 0/1.5.4 UINT4 BYTES   24 No No
iobus_inst_xref opt/1.5.85 TEXTSTRING XREF reference to iobus 28 Yes No
lan_vendor opt/1.5.86 TEXTSTRING NOUNITS   36 Yes No
lan_model opt/1.5.87 TEXTSTRING NOUNITS   44 Yes No
status opt/1.5.88 ENUMERATION NOUNITS   52 No No
    offline = 0        
    online = 1        
    failed = 2        
config_change_event 0/1.5.89 UINT4 NOUNITS - - - -

Table: Local Area Network Controller Instance Label

Notes

WAN interfaces are not part of the datapool. Wide area point-to-point interfaces should have their own class. ATM is contentious but when used as a LAN substitute it belongs here. They are really the domain of Network Management, rather than System Performance Management.


Subclass - Disk Instance Configuration

A disk is a partitionable block device. Anything else is an "other". A hardware RAID disk subsystem that appears to the system as a single large disk belongs in this subclass. If the individual disks are apparent then each disk gets its own instance, and the RAID unit is dealt with as an "Other Device" and a volume description.

Data Attributes MLI Attributes
Label Level Data Type Units Example Offset VLDS Instance
  /DatumId         Object Array
disk_type 0/1.6.1 ENUMERATION NOUNITS one instance per-disk, coded as 0 No No
    Unknown = 0        
    harddisk = 1        
    cdrom = 2        
    floppy = 3        
    worm = 4        
    Hard_raid = 5        
disk_label 0/1.6.2 TEXTSTRING NOUNITS e.g. sd0 or c0t0 or c0d0 or c0t0d0 4 Yes No
capacity 0/1.6.3 UINT4 KYTES   12 No No
sector size 0/1.6.4 UINT4 BYTES   16 No No
major 0/1.6.5 UINT4 COUNT   20 No No
minor 0/1.6.6 UINT4 COUNT   24 No No
status 1/1.6.7 ENUMERATION NOUNITS   28 No No
    offline = 0        
    online = 1        
    failed = 2        
vendor 1/1.6.8 TEXTSTRING NOUNITS   32 Yes No
vendor_designation 1/1.6.9 TEXTSTRING NOUNITS   40 Yes No
controller_inst_xref opt/1.6.85 TEXTSTRING XREF reference to a controller 0 Yes No
controller2_inst_xref opt/1.6.86 TEXTSTRING XREF optional 2nd controller for dual port (e.g. SCSIdisk) 8 Yes No
device_cache_size opt/1.6.87 UINT4 KBYTES onboard cache 16 No No
device_queue_size opt/1.6.88 UINT4 COUNT e.g. SCSI tagged command queue size 20 No No
volume_label   TEXTSTRING NOUNITS   24 Yes No
config_change_event 0/1.6.89 UINT4 NOUNITS - - - -

Table: Disk Instance Configuration

Subclass - Other Device Instance Configuration

This subclas includes tapes, juke boxes and RAID units. The storage configuration of a RAID unit is not provided here as it is implicit in the way volumes are described. Tape config information is provided, but no performance stats are available on most systems so the stats are level 1.

Data Attributes MLI Attributes
Label Level Data Type Units Example Offset VLDS Instance
  /DatumId         Object Array
type 0/1.7.1 ENUMERATION NOUNITS target-type: one instance per-target, coded as 0 No No
    unknown = 0        
    tape = 1        
    jukebox = 3 (optical or tape changer)        
    array = 4 (disk array / RAID controller)        
    fep = 5 (mainframe front end)        
size 0/1.7.2 UINT4 KBYTES target size, zero if not applicable 4 No No
label 0/1.7.3 TEXTSTRING NOUNITS target label (c0t0, sd0, st0 etc) 8 Yes No
major 0/1.7.4 UINT4 COUNT   16 No No
minor 0/1.7.5 UINT4 COUNT   20 No No
status 1/1.7.6 ENUMERATION NOUNITS   24 No No
    offline = 0        
    online = 1        
    failed = 2        
vendor 1/1.7.7 TEXTSTRING NOUNITS   28 Yes No
vendor_designation 1/1.7.8 TEXTSTRING NOUNITS   36 Yes No
controller_inst_xref opt/1.7.85 TEXTSTRING XREF reference to a controller 0 Yes No
controller2_inst_xref opt/1.7.86 TEXTSTRING XREF optional 2nd controller 8 Yes No
device_cache_size opt/1.7.87 UINT4 KBYTES e.g. RAID cache 16 No No
device_queue_size opt/1.7.88 UINT4 COUNT SCSI tagged command queue size 20 No No
config_change_event 0/1.7.89 UINT4 NOUNITS - - - -

Table: Other Device Instance Configuration

Subclass - Disk Partition Instance Configuration

Also called slices, and subdisks. Each partition xrefs the disk it comes from, and is in turn xref'd by the volume hierarchy. Filesystem info is not provided here, as filesystems may span multiple disk partitions and partitions may be used raw.

Data Attributes MLI Attributes
Label Level Data Type Units Example Offset VLDS Instance
  /DatumId         Object Array
partition_label 1/1.8.1 TEXTSTRING NOUNITS slice/partition/subdisk label (s0, a, disk01-1) 0 Yes No
partition_size 1/1.8.2 UINT4 KBYTES target size, zero if not applicable 8 No No
partition_start 1/1.8.3 UINT4 KBYTES offset into disk of start 12 No No
major 1/1.8.4 UINT4 COUNT   16 No No
minor 1/1.8.5 UINT4 COUNT   20 No No
disk_inst_xref opt/1.8.85 TEXTSTRING XREF xref into a disk instance 0 Yes No
config_change_event 0/1.8.86 UINT4 NOUNITS - - - -

Table: Disk Partition Instance Configuration

Subclass - Volume Group Instance Configuration

The following classes are architected to refer to the I/O hierarchy, and to allow for Veritas LVM, HP, AIX and SunSoft DiskSuite based software implementations, and hardware RAID configurations.

Volume groups, disk groups and disk sets are names for a collection of related volumes, they are used both for administrative convenience, and to provide for HA failover, and disk sharing between systems in parallel database applications. In the absence of an explicit group, volumes not in any group omit the cross-reference and there will be no volume group instances.

Data Attributes MLI Attributes
Label Level Data Type Units Example Offset VLDS Instance
  /DatumId         Object Array
volume_group_label 1/1.9.1 TEXTSTRING NOUNITS group name 0 Yes No
        e.g. rootdg      
status 1/1.9.2 ENUMERATION NOUNITS   8 No No
    offline = 0        
    online = 1        
    failed = 2        
config_change_event 0/1.9.3 UINT4 NOUNITS - - - -

Table: Volume Group Instance Configuration

Subclass - Volume/Metadisk Instance Configuration

Volumes are the entities that have data stored in them. They can be used raw, to provide swap space or for raw database tables. They can have a filesystem built on them so the filesystem can be mounted. A volume can contain an xref to a disk group, and is xref'd by plexes. In DiskSuite terminology a volume is a metadisk.

Data Attributes MLI Attributes
Label Level Data Type Units Example Offset VLDS Instance
  /DatumId         Object Array
volume_size 1/1.10.1 UINT4 KBYTES size of volume in Kbytes 0 No No
volume_label 1/1.10.2 TEXTSTRING NOUNITS volume label e.g. vol3, md23, lv01 4 Yes No
status 1/1.10.3 ENUMERATION NOUNITS   12 No No
    offline = 0        
    online = 1        
    failed = 2        
vg_inst_xref opt/1.10.85 TEXTSTRING XREF reference to 0 Yes No
        disk_group      
config_change_event 1/1.10.86 UINT4 NOUNITS - - - -

Table: Volume/Metadisk Instance Configuration

Subclass - Plex/Metapartition Instance Configuration

Plexes are the components used to tie disk partitions to volumes. Plex instances are strongly ordered, so that a volume is made up of plexes concatenated or mirrored in the order in which they appear in the plex instances. This info can be used by an application to build a doubly linked tree to find the plexes given a volume. A common configuration change is to add another plex at the end of a volume to increase its size, adding another plex at the end of the list of instances satisfies this requirement. Plexes can reference other plexes in order to allow constructs such as mirrored striped volumes. Plexes are also known as metapartitions.

For example, to encode a simple mirror of two pieces of disk, two type 0 plexes would xref the same volume, and would each xref a disk partition.

Sizes are not redundant, as mirroring or striping two plexes results in the minimum of the two as the size.

Data Attributes MLI Attributes
Label Level Data Type Units Example Offset VLDS Instance
  /DatumId         Object Array
plex_label 1/1.11.1 TEXTSTRING NOUNITS   0 Yes No
plex_type 1/1.11.2 ENUMERATION NOUNITS plex type, coded as 8 No No
    raid0/submirror = 0        
    raid1/stripe = 1        
    raid2 = 2        
    raid3 = 3        
    raid4 = 4        
    raid5 = 5        
    raid4parity = 14        
    parity disk log = 15 journal filesystem log      
    hotspare = 16        
plex_interlace 1/1.11.3 UINT4 KBYTES interlace used for stripe and raid 12 No No
plex_size 1/1.11.4 UINT4 KBYTES size of plex 16 No No
status 1/1.11.5 ENUMERATION NOUNITS   20 No No
offline = 0            
online = 1            
failed = 2            
vol_pl_inst_xref opt/1.11.85 TEXTSTRING XREF xref to a volume or a higher level plex 0 Yes No
part_pl_inst_xref opt/1.11.86 TEXTSTRING XREF xref to a partition or a lower level plex 8 Yes No
config_change_event 1/1.11.87 UINT4 NOUNITS - - - -

Table: Plex/Metapartition Instance Configuration Label

Subclass - File System Instance Configuration

A filesystem can cross-reference a (logical) volume or a simple disk partition only. Filesystems that store data are represented here. Special filesystem types like procfs are not.

The data reported by the BSD form of df is the basis of this class

% df Filesystem kbytes used avail capacity Mounted on /edev/edsk/ec0t3d0s0 189858 169406 1472 99% /re

The event is generated when the filesystem is mounted, unmounted or a hard error state is entered. File system full is not an event condition. Applications can poll this subclass to monitor filesystem free space.

The filesystem type is a string, since there are more filesystem types than can be enumerated in the standard. Since there are many common types, these exact strings should be used if the filesystem matches one of the entries.

Label String Type
raw raw disk (raw database tablespace)
swap swap space
ufs BSD4 based UNIX file system
hsfs cdrom High Sierra file system
pcfs MSDOS pc
sys5 system V
jfs journal fs
xfs extent fs
tmpfs RAM based temporary fs
cachefs ONC+ caching fs
nfs_v2 NFS version 2
nfs_v3 NFS version 3
afs Andrew FS
dfs DCE
rfs Sys V Remote FS

Table: File System Types Label String



Data Attributes MLI Attributes
Label Level Data Type Units Example Offset VLDS Instance
  /DatumId         Object Array
               
filesystem_type 0/1.12.1 TEXTSTRING NOUNITS   0 Yes No
device_string 0/1.12.2 TEXTSTRING NOUNITS mounted device 8 Yes No
size 0/1.12.3 UINT4 KBYTES size in KBytes 16 No No
mount_point 0/1.12.4 TEXTSTRING NOUNITS mount point path name string 20 Yes No
status 1/1.12.5 ENUMERATION NOUNITS   24 No No
    unmounted = 0        
    mounted = 1        
    failed = 2        
options 1/1.12.6 TEXTSTRING NOUNITS mount options string 28 Yes No
block_size 1/1.12.7 UINT4 BYTES filesystem block size (e.g. stat.st_blksize) 36 No No
part_vol_inst_xref opt/1.12.85 ID_INST XREF xref to a disk partition or volume 0 No No
config_change_event 0/1.12.86 UINT4 NOUNITS - - - -


Table: File System Instance Configuration

Subclass - Dynamic Kernel Table Counter Configuration

The number and definition of fixed size kernel tables varies even from one release of an OS to the next. In general many systems are removing fixed size limits. This class specifies the names of the tables that are reported on by the Dynamic Kernel Table Counter class. Each instance of this class defines the name of the corresponding instance in that class.

There are four values that are commonly reported by the SVR4 sar -v option. If these tables are provided then standard strings must be used to indicate the names. Process, inode, file and lock tables are often reported by sar.

% sar -v 1 23:45:06 proc-sz ov inod-sz ov file-sz ov lock-sz 23:45:07 49/506 0 1874/1874 0 297/297 0 0/0

Level Table name string Type
0 process process table
0 inode ufs inode table
0 file systemwide open file table
0 lock systemwide file lock table

Table: Kernel Table Types

Data Attributes MLI Attributes
Label Level Data Type Units Example Offset VLDS Instance
  /DatumId         Object Array
table_name 0/1.13.1 TEXTSTRING NOUNITS   0 Yes No
table_limit 0/1.13.2 UINT8 NOUNITS   8 No No

Table: Dynamic Kernel Table Counter Configuration

Some tables may not have a limit in certain implementations, so return 0 as the limit.


Subclass - per-IP Configuration

Some systems support multiple protocols, or multiple IP addresses on one interface, so this is separated from the network interface itself. Table 16:

Data Attributes MLI Attributes
Label Level Data Type Units Example Offset VLDS Instance
  /DatumId         Object Array
ip_address 0/1.14.1 TEXTSTRING NOUNITS   0 Yes No
subnet mask 0/1.14.2 TEXTSTRING NOUNITS   8 Yes No
broadcast 0/1.14.3 TEXTSTRING NOUNITS   16 Yes No
network_interface_xref opt/1.14.85 TEXTSTRING XREF xref to a network interface 0 Yes No
config_change_event 0/1.14.86 UINT4 NOUNITS - - - -

Table: Subclass - per-IP Configuration

Subclass - System Call Configuration

This class was designated as level 1 at one point. In fact it can be level 0, and if no data is available no instances need be defined. Each implementation is free to define its own set of system calls and to decide which calls are instrumented and reported.

Based on the data normally displayed by sar -c, certain system calls may be counted globally. The name of each instance is provided by this class. The counters are read by the System Call Counter class. Some sample sar -c output is shown below.

% sar -c 1 SunOS crun 5.5 Generic sun4u 07/08/96 15:50:02 scall/s sread/s swrit/s fork/s exec/s rchar/s wchar/s 15:50:03 234 19 16 0.00 0.00 3801 2614

The first five values are considered to have predefined name strings as shown. The last two values shown in the sar example are not call counts.

Table name string Type
syscalls total number of system calls
read read syscall
write write syscall
fork fork syscall
exec exec syscall

Table: System Call Names

Data Attributes MLI Attributes
Label Level Data Type Units Example Offset VLDS Instance
  /DatumId         Object Array
syscall_name 0/1.15.1 TEXTSTRING NOUNITS   0 Yes No

Table: System Call Configuration

Subclass - Scheduling Class Configuration

One instance per-scheduling class. Secondary ranges exist in some System V implementations. This class is needed so that it is clear whether high numerical values refer to high or low priorities, and to indicate the relative ordering and overlap of different scheduler classes.

Data Attributes MLI Attributes
Label Level Data Type Units Example Offset VLDS Instance
  /DatumId         Object Array
sched_class_name 0/1.16.1 TEXTSTRING NOUNITS e.g. TS 0 Yes No
low_end_priority 0/1.16.2 UINT4 COUNT   8 No No
high_end_priority 0/1.16.3 UINT4 COUNT   12 No No
default_start_priority 0/1.16.4 UINT4 COUNT   16 No No
low_end_priority_secondary opt/1.16.85 UINT4 COUNT   0 No No
high_end_priority_secondary opt/1.16.86 UINT4 COUNT   4 No No
config_change_event 0/1.16.87 UINT4 NOUNITS - - - -

Table: Scheduling Class Configuration

Processor Classes

Measured Per-processor Times

One instance per-processor. Measured times are accumulated at the state transitions, and are more accurate, but higher overhead than the sampled per-processor times.

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
user_time 0/2.1.1 UINT8 TIMEVAL 0 No No
system_time 0/2.1.2 UINT8 TIMEVAL 8 No No
idle_time 0/2.1.3 UINT8 TIMEVAL 16 No No

Table: Measured Per-processor Times
Constraints
user_time + system_time + idle_time = 100% of the elaspsed time.
Definitions

idle_time
includes all wait time. Idle time is broken down further in the per-processor wait times subclass.


Sampled Per-processor Times

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
user_time 0/2.2.1 UINT8 TIMEVAL 0 No No
system_time 0/2.2.2 UINT8 TIMEVAL 8 No No
idle_time 0/2.2.3 UINT8 TIMEVAL 16 No No
idle_disk_wait_time 1/2.2.4 UINT8 TIMEVAL 24 No No

Table: Sampled Per-processor Times

Constraints
user_time + system_time + idle_time = 100% of the elapsed time

idle_disk_wait_time <= idle_time

Definitions

idle_time
includes all wait time.

idle_disk_wait_time
is accumulated when the sample occurs while the system is waiting for a disk I/O.

The idle_disk_wait_time is inflated on multiprocessor systems, as multiple idle CPUs are all sampled as waiting for a single I/O. When reporting a composite system wide wait time, it is recommended that the total idle_disk_wait_time is divided by the number of CPUs and the excess is allocated as idle time.


Per-processor Counters

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
system_calls 0/2.3.1 UINT8 COUNT 0 No No
hardware_interrupts 0/2.3.2 UINT8 COUNT 8 No No
total_switches 0/2.3.3 UINT8 COUNT 16 No No
voluntary_switches 1/2.3.4 UINT8 COUNT 24 No No
traps 1/2.3.5 UINT8 COUNT 32 No No
program_interrupts 1/2.3.6 UINT8 COUNT 40 No No
mutex_stalls opt/2.3.85 UINT8 COUNT 0 No No

Table: Per-processor Counters
Constraints
involuntary_switches = total_switches - voluntary_switches
Definitions

hardware_interrupts
include external I/O device interrupts.

program_interrupts
include cross calls between processors.

mutex_stalls
are the number of times a processor is stalled because it could not obtain a mutual exclusion lock held by another processor.

Per-processor Per-system Call Counters

The system call configuration subclass defines and names each system call instance. There are two levels of instances here, per-processor and per-system call.

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
syscall_count 0/2.4.1 UINT8 COUNT 0 No No
syscall_cpu_time opt/2.4.85 UINT8 TIMEVAL 0 No No

Table: Per-processor Per-system Call Counters

Per-work Unit Processor Times

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
user_time 0/2.5.1 UINT8 TIMEVAL 0 No No
system_time 0/2.5.2 UINT8 TIMEVAL 8 No No
user_child_time 0/2.5.3 UINT8 TIMEVAL 16 No No
system_child_time 0/2.5.4 UINT8 TIMEVAL 24 No No
rt_priority_time opt/2.5.85 UINT8 TIMEVAL 0 No No
interrupt_time opt/2.5.86 UINT8 TIMEVAL 8 No No

Table: Per Work Unit Processor Times
Definitions

rt_priority_time
is time spent by this work unit running in the realtime priority class.

interrupt_time
is time stolen from this work unit while processing interrupts. The interrupt time is a subset of the user_time and system_time.

user_child_time and system_child_time

only accumulate the time for child processes that have exited. They are updated when the parent process reaps the child.

Per-work Unit Per-system Call Counters

The system call configuration subclass defines and names each system call instance. There are two levels of instances here, per-work unit (process) and per-system call.

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
syscall_count 1/2.6.1 UINT8 COUNT 0 Yes Yes
syscall_cpu_time opt/2.6.85 UINT8 TIMEVAL 0 Yes Yes

Table: Per-work Unit Per-system Call Counters

Wait Times

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
idle_disk_wait_time 1/2.7.1 UINT8 TIMEVAL 0 No No
idle_page_swap_time 1/2.7.2 UINT8 TIMEVAL 8 No No

Table: Wait Times Subclass
Constraints
user_time + system_time + idle_time = 100% of the accumulated processor time

idle_page_swap_time <= idle_disk_wait_time <= idle_time

Definitions

idle_time
includes all wait time.

idle_disk_wait_time
is accumulated when the CPU sleeps waiting for a disk I/O.

idle_page_swap_time
is accumulated when the CPU sleeps waiting for a disk I/O that is paging or swapping to the swap space. Unlike sampled per-processor times, the idle_disk_wait_time will not be inflated on multiprocessor systems, as only the CPU that initiated the I/O will be measured. The wait time ends when the I/O ends, even if a different CPU processes the completion.

Memory Class

Global Physical Memory Usage

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
free_memory 0/3.1.1 UINT4 KBYTES 0 No No
file_cache_memory 0/3.1.2 UINT4 KBYTES 4 No No
kernel_memory 0/3.1.3 UINT4 KBYTES 8 No No
other_memory 0/3.1.4 UINT4 KBYTES 12 No No
wired_memory 1/3.1.5 UINT4 KBYTES 16 No No
shared memory 1/3.1.6 UINT4 KBYTES 20 No No
dirty_memory opt/3.1.85 UINT4 KBYTES 0 No No

Table: Global Physical Memory Usage
Constraints
total physical memory = free_memory + file_cache_memory + kernel_memory + other_memory
Definitions

total physical memory (physmem)

is in the system configuration class

wired_memory
is memory that cannot be paged out.

shared memory
is all memory that is multiply referenced.

dirty_memory
is memory that is modified with respect to its backing store.

Global Virtual Memory Usage

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
total_swap 0/3.2.1 UINT4 PAGES 0 No No
swap_available 0/3.2.2 UINT4 PAGES 4 No No
swap_allocated 0/3.2.3 UINT4 PAGES 8 No No

Table: Global Virtual Memory Usage

The intention is to know how much virtual memory is in use, and how much is left, such that when there is no swap available it is not possible to grow or start processes. These are the four underlying measures provided by SVR4 and Solaris 2 (for example):

swap_reserved
reserved swap in pages - space reserved but not written to.

swap_allocated
allocated swap in pages - space that has been written to.

swap_available
unreserved swap in pages - space available to be reserved.

swap_free
unallocated swap in pages - space that has yet to be written to.

The metrics are derived from these measures as follows:

total_swap = swap_allocated + swap_reserved + swap_available

Note that swap_free is not used in this calculation, although it is the value reported by sar on some systems. swap_available is the value reported by vmstat.

Per-processor Demand Paging Counters

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
major_faults 0/3.3.1 UINT8 COUNT 0 No No
minor_faults 0/3.3.2 UINT8 COUNT 8 No No
pages_in 0/3.3.3 UINT8 PAGES 16 No No
pages_out 0/3.3.4 UINT8 PAGES 24 No No
page_reclaims 0/3.3.5 UINT8 COUNT 32 No No
page_in_ops 1/3.3.6 UINT8 COUNT 40 No No
page_out_ops 1/3.3.7 UINT8 COUNT 48 No No
zero_fill_pages 1/3.3.8 UINT8 PAGES 56 No No
copy_on_write_faults 1/3.3.9 UINT8 COUNT 64 No No
copy_on_write_pages 1/3.3.10 UINT8 PAGES 72 No No
pages_scanned 1/3.3.11 UINT8 PAGES 80 No No
pager_run 1/3.3.12 UINT8 COUNT 88 No No
pages_freed 1/3.3.13 UINT8 PAGES 96 No No
pages_attached 1/3.3.14 UINT8 PAGES 104 No No
ssq_pages_in opt/3.3.85 UINT8 PAGES 0 No No
ssq_pages_out opt/3.3.86 UINT8 PAGES 8 No No

Table: Per-processor Demand Paging Counters

Per-processor Swapping Counters

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
pages_swapped_in 0/3.4.1 UINT8 PAGES 0 No No
pages_swapped_out 0/3.4.2 UINT8 PAGES 8 No No
processes_swapped_in 0/3.4.3 UINT8 PROCESSES 16 No No
processes_swapped_out 0/3.4.4 UINT8 PROCESSES 24 No No

Table: Per-processor Swapping Counters

Per-work Unit Memory Usage

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
total_virtual_memory_size 0/3.5.1 UINT8 PAGES 0 No No
total_resident_set_size 0/3.5.2 UINT8 PAGES 8 No No
private_resident_memory 1/3.5.3 UINT8 PAGES 16 No No
shared_resident_memory 1/3.5.4 UINT8 PAGES 24 No No
wired_memory 1/3.5.5 UINT8 PAGES 32 No No
sys5_shared_memory 1/3.5.6 UINT8 PAGES 40 No No

Table: Per-work Unit Memory Usage

The level 0 metrics are basically the SIZE and RSS fields reported by the UNIX ps command for each process.

Per-work Unit Demand Paging Counters

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
minor_faults 0/3.6.1 UINT8 COUNT 0 No No
major_faults 0/3.6.2 UINT8 COUNT 8 No No
child_minor_faults 1/3.6.3 UINT8 COUNT 16 No No
child_major_faults 1/3.6.4 UINT8 COUNT 24 No No

Table: Per-work Unit Demand Paging Counters
Definitions
Minor faults are resolved within the memory system, typically without sleeping.

Major faults require a disk I/O to resolve, causing the work unit to sleep until the I/O completes.

Child fault counts are accumulated for children that have exited at the time the children are reaped.

Per-work Unit Swapping Counters

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
swap_outs 0/3.7.1 UINT8 COUNT 0 No No

Table: Per-work Unit Swapping Counters

Dynamic Kernel Table Counters

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
current_inuse 0/3.8.1 UINT8 COUNT 0 No No
allocated_size 0/3.8.2 UINT8 COUNT 8 No No
maximum_reached 1/3.8.3 UINT8 COUNT 16 No No

Table: Dynamic Kernel Table Counters
Notes
Process, inode, file and lock tables and limits are listed in the configuration section for level 0.

Allocated size may be the same as the limit if the whole table is preallocated, may be the same as current_inuse if the table is allocated one item at a time, or may be a little larger than current_inuse if allocations are made in slabs. Some implementations that use a dynamically allocated linked list of structures do not have a hard limit, but when exceeded the system will reclaim inactive entries immediately. Each instance of this subclass reports on a different kernel table.

Memory Object Subclass

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
memory_object_type opt/3.9.85 ENUMERATION NOUNITS 0 No No
    sys5_shared_memory = 0      
    mmap_shared_memory = 1      
    file = 2      
mount_point opt/3.9.86 TEXTSTRING NOUNITS 8 Yes No
inode opt/3.9.87 UINT8 NOUNITS 16 No No
resident_memory_size opt/3.9.88 UINT8 PAGES 24 No No
virtual_memory_size opt/3.9.89 UINT8 PAGES 32 No No
locked_memory_size opt/3.9.90 UINT8 PAGES 40 No No

Table: Memory Object Subclass

IPC Class

IPC subclass

These counters are intended to map onto the common "System V" IPC message queue and semaphore implementation data (returned by sar -m on some platforms).

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
ipc_message_sent 0/4.1.1 UINT8 COUNT 0 No No
ipc_message_received 0/4.1.2 UINT8 COUNT 8 No No
semaphore_operations 0/4.1.3 UINT8 COUNT 16 No No

Table: Global IPC Counters subclass

Scheduling Class

Global Runqueue Counters

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
runq_samples 0/5.1.1 UINT8 COUNT 0 No No
runload_sum 0/5.1.2 UINT8 PROCESSES 8 No No
runnonload_sum 0/5.1.3 UINT8 PROCESSES 16 No No

Table: Global Runqueue Counters

Per-work Unit Scheduling Counters

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
sched_class_id 0/5.2.1 UINT4 NOUNITS 0 No No
global_priority 0/5.2.2 INT4 COUNT 4 No No
nice_value 0/5.2.3 INT4 COUNT 8 No No

Table: Per-work Unit Scheduling Counters

Disk Device Data Class

Global Physical I/O Counters

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
buffer_reads 0/6.1.1 UINT8 COUNT 0 No No
logical_reads 0/6.1.2 UINT8 COUNT 8 No No
buffer_writes 0/6.1.3 UINT8 COUNT 16 No No
logical_writes 0/6.1.4 UINT8 COUNT 24 No No
physical_reads 0/6.1.5 UINT8 COUNT 32 No No
physical_writes 0/6.1.6 UINT8 COUNT 40 No No
buffer_reads_KB 1/6.1.7 UINT8 KBYTES 48 No No
logical_reads_KB 1/6.1.8 UINT8 KBYTES 56 No No
buffer_writes_KB 1/6.1.9 UINT8 KBYTES 64 No No
logical_writes_KB 1/6.1.10 UINT8 KBYTES 72 No No
physical_read_KB 1/6.1.11 UINT8 KBYTES 80 No No
physical_write_KB 1/6.1.12 UINT8 KBYTES 88 No No

Table: Global Physical I/O Counters

This class is based on the data commonly provided by sar - b:

% sar -b
10:44:11 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s

Notes
The filesystem buffer cache measures are commonlly provided but there are widely different implementations so the measures are not always useful. Some (traditional UNIX) implementations use the buffer cache for all filesystem I/O. Others (e.g. UNIX SVR4, Solaris 1, and Solaris 2) do not, and only use it to store filesystem metadata such as inodes, indirect blocks and cylinder group blocks.

The physical I/O counters are the counts of raw device accesses rather than block device (filesystem) accesses. These are commonly reported by sar as pread and pwrite.


Per-disk Device Data

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
read_bytes 0/6.2.1 UINT8 BYTES 0 No No
write_bytes 0/6.2.2 UINT8 BYTES 8 No No
reads 0/6.2.3 UINT8 COUNT 16 No No
writes 0/6.2.4 UINT8 COUNT 24 No No
wait_time 0/6.2.5 UINT8 TIMEVAL 32 No No
wait_length_time 0/6.2.6 UINT8 TIMEVAL 40 No No
active_time 0/6.2.7 UINT8 TIMEVAL 48 No No
active_length_time 0/6.2.8 UINT8 TIMEVAL 56 No No

Table: Per-disk Device Data

A disk device requires two queues to be instrumented. The wait queue consists of commands that have not yet been issued to the disk. The active queue consists of commands that have been issued to the disk but have not yet completed. Modern SCSI disks can accept a large active queue.

Definitions

wait_time
is a running sum of the time that the queue is non-empty.

wait_length_time
is a running sum of the product of queue length and elapsed time at that length.

The active queue is instrumented the same way.

active_length_time
is a running sum of the product of queue length and elapsed time at that length.

Notes

At each entry or exit from the queue, the elapsed time since the previous state change is added to the wait_time if the queue length is non-zero, and the product of the time and the queue length is added to wait_length_time.

In the following example, assume that two measurements (new and old) were separated by some elapsed_time. The higher level disk statistics are obtained by the following calculations:

Per-work Unit I/O

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
inblock 0/6.3.1 UINT8 BYTES 0 No No
outblock 0/6.3.2 UINT8 BYTES 8 No No

Table: Per-work Unit I/O
Notes
These measures count the filesystem block I/O made by the work unit. Care must be taken to convert the values into bytes from whatever the operating system reports them in (may be 512 byte blocks).

Global File Systems Class

Global File Service Counters

This subclass accumulates all activity related to NFSV2, NFSV3, DFS, AFS, etc.

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
inbound_reqs 1/7.1.1 UINT8 COUNT 0 No No
read_reqs 1/7.1.2 UINT8 COUNT 8 No No
send_bytes 1/7.1.3 UINT8 BYTES 16 No No
write_reqs 1/7.1.4 UINT8 COUNT 24 No No
recv_bytes 1/7.1.5 UINT8 BYTES 32 No No
duplicate_requests 1/7.1.6 UINT8 COUNT 40 No No

Table: Global File Service Counters

ONC RPC Client Counters

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
client_rpc_calls 0/7.2.1 UINT4 COUNT 0 No No
client_rpc_badcalls 0/7.2.2 UINT4 COUNT 4 No No
client_rpc_retransmits 0/7.2.3 UINT4 COUNT 8 No No
client_rpc_badxids 0/7.2.4 UINT4 COUNT 12 No No
client_rpc_waits 0/7.2.5 UINT4 COUNT 16 No No
client_rpc_newcreds 0/7.2.6 UINT4 COUNT 20 No No

Table: ONC RPC Client Counters

ONC NFS Version 2 Client Counters

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
client_nfs_sleepcalls 0/7.3.1 UINT4 COUNT 0 No No
client_nfs_calls 0/7.3.2 UINT4 COUNT 4 No No
client_nfs_gets 0/7.3.3 UINT4 COUNT 8 No No
client_nfs_badcalls 0/7.3.4 UINT4 COUNT 12 No No
client_nfs_nullrcvs 0/7.3.5 UINT4 COUNT 16 No No
client_nfs_getattrs 0/7.3.6 UINT4 COUNT 20 No No
client_nfs_setattrs 0/7.3.7 UINT4 COUNT 24 No No
client_nfs_root 0/7.3.8 UINT4 COUNT 28 No No
client_nfs_lookup 0/7.3.9 UINT4 COUNT 32 No No
client_nfs_readlink 0/7.3.10 UINT4 COUNT 36 No No
client_nfs_read 0/7.3.11 UINT4 COUNT 40 No No
client_nfs_writecache 0/7.3.12 UINT4 COUNT 44 No No
client_nfs_write 0/7.3.13 UINT4 COUNT 48 No No
client_nfs_create 0/7.3.14 UINT4 COUNT 52 No No
client_nfs_remove 0/7.3.15 UINT4 COUNT 56 No No
client_nfs_rename 0/7.3.16 UINT4 COUNT 60 No No
client_nfs_link 0/7.3.17 UINT4 COUNT 64 No No
client_nfs_symlink 0/7.3.18 UINT4 COUNT 68 No No
client_nfs_mkdir 0/7.3.19 UINT4 COUNT 72 No No
client_nfs_rmdir 0/7.3.20 UINT4 COUNT 76 No No
client_nfs_readdir 0/7.3.21 UINT4 COUNT 80 No No
client_nfs_filesysstat 0/7.3.22 UINT4 COUNT 84 No No

Table: ONC NFS Version 2 Client Counters

ONC RPC Server Counters

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
server_rpc_calls 0/7.4.1 UINT4 COUNT 0 No No
server_rpc_badcalls 0/7.4.2 UINT4 COUNT 4 No No
server_rpc_nullrcvs 0/7.4.3 UINT4 COUNT 8 No No
server_rpc_badlens 0/7.4.4 UINT4 COUNT 12 No No
server_rpc_xdrcalls 0/7.4.5 UINT4 COUNT 16 No No

Table: ONC RPC Server Counters

ONC NFS Version 2 Server Counters

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
server_nfs_calls 0/7.5.1 UINT4 COUNT 0 No No
server_nfs_badcalls 0/7.5.2 UINT4 COUNT 4 No No
server_nfs_null 0/7.5.3 UINT4 COUNT 8 No No
server_nfs_getattr 0/7.5.4 UINT4 COUNT 12 No No
server_nfs_setattr 0/7.5.5 UINT4 COUNT 16 No No
server_nfs_root 0/7.5.6 UINT4 COUNT 20 No No
server_nfs_lookups 0/7.5.7 UINT4 COUNT 24 No No
server_nfs_readlink 0/7.5.8 UINT4 COUNT 28 No No
server_nfs_reads 0/7.5.9 UINT4 COUNT 32 No No
server_nfs_writecache 0/7.5.10 UINT4 COUNT 36 No No
server_nfs_writes 0/7.5.11 UINT4 COUNT 40 No No
server_nfs_creates 0/7.5.12 UINT4 COUNT 44 No No
server_nfs_removes 0/7.5.13 UINT4 COUNT 48 No No
server_nfs_renames 0/7.5.14 UINT4 COUNT 52 No No
server_nfs_links 0/7.5.15 UINT4 COUNT 56 No No
server_nfs_symlinks 0/7.5.16 UINT4 COUNT 60 No No
server_nfs_mkdir 0/7.5.17 UINT4 COUNT 64 No No
server_nfs_rmdir 0/7.5.18 UINT4 COUNT 68 No No
server_nfs_readdir 0/7.5.19 UINT4 COUNT 72 No No
server_nfs_filesysstat 0/7.5.20 UINT4 COUNT 76 No No

Table: ONC NFS Version 2 Server Counters

ONC NFS Version 3 Client Counters

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
client_nfs_sleepcalls 0/7.6.1 UINT4 COUNT 0 No No
client_nfs_calls 0/7.6.2 UINT4 COUNT 4 No No
client_nfs_gets 0/7.6.3 UINT4 COUNT 8 No No
client_nfs_badcalls 0/7.6.4 UINT4 COUNT 12 No No
client_nfs3_nullrcvs 0/7.6.5 UINT4 COUNT 16 No No
client_nfs3_getattrs 0/7.6.6 UINT4 COUNT 20 No No
client_nfs3_setattrs 0/7.6.7 UINT4 COUNT 24 No No
client_nfs3_lookup 0/7.6.8 UINT4 COUNT 28 No No
client_nfs3_access 0/7.6.9 UINT4 COUNT 32 No No
client_nfs3_readlink 0/7.6.10 UINT4 COUNT 36 No No
client_nfs3_read 0/7.6.11 UINT4 COUNT 40 No No
client_nfs3_write 0/7.6.12 UINT4 COUNT 44 No No
client_nfs3_create 0/7.6.13 UINT4 COUNT 48 No No
client_nfs3_mkdir 0/7.6.14 UINT4 COUNT 52 No No
client_nfs3_symlink 0/7.6.15 UINT4 COUNT 56 No No
client_nfs3_mknod 0/7.6.16 UINT4 COUNT 60 No No
client_nfs3_remove 0/7.6.17 UINT4 COUNT 64 No No
client_nfs3_rmdir 0/7.6.18 UINT4 COUNT 68 No No
client_nfs3_rename 0/7.6.19 UINT4 COUNT 72 No No
client_nfs3_link 0/7.6.20 UINT4 COUNT 76 No No
client_nfs3_readdir 0/7.6.21 UINT4 COUNT 80 No No
client_nfs3_readdirplus 0/7.6.22 UINT4 COUNT 84 No No
client_nfs3_filesysstat 0/7.6.23 UINT4 COUNT 88 No No
client_nfs3_filesysinfo 0/7.6.24 UINT4 COUNT 92 No No
client_nfs3_pathconf 0/7.6.25 UINT4 COUNT 96 No No
client_nfs3_commit 0/7.6.26 UINT4 COUNT 100 No No

Table: ONC NFS Version 3 Client Counters

ONC NFS Version 3 Server Counters

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
server_nfs_sleepcalls 0/7.7.1 UINT4 COUNT 0 No No
server_nfs_calls 0/7.7.2 UINT4 COUNT 4 No No
server_nfs_gets 0/7.7.3 UINT4 COUNT 8 No No
server_nfs_badcalls 0/7.7.4 UINT4 COUNT 12 No No
server_nfs3_nullrcvs 0/7.7.5 UINT4 COUNT 16 No No
server_nfs3_getattrs 0/7.7.6 UINT4 COUNT 20 No No
server_nfs3_setattrs 0/7.7.7 UINT4 COUNT 24 No No
server_nfs3_lookup 0/7.7.8 UINT4 COUNT 28 No No
server_nfs3_access 0/7.7.9 UINT4 COUNT 32 No No
server_nfs3_readlink 0/7.7.10 UINT4 COUNT 36 No No
server_nfs3_read 0/7.7.11 UINT4 COUNT 40 No No
server_nfs3_write 0/7.7.12 UINT4 COUNT 44 No No
server_nfs3_create 0/7.7.13 UINT4 COUNT 48 No No
server_nfs3_mkdir 0/7.7.14 UINT4 COUNT 52 No No
server_nfs3_symlink 0/7.7.15 UINT4 COUNT 56 No No
server_nfs3_mknod 0/7.7.16 UINT4 COUNT 60 No No
server_nfs3_remove 0/7.7.17 UINT4 COUNT 64 No No
server_nfs3_rmdir 0/7.7.18 UINT4 COUNT 68 No No
server_nfs3_rename 0/7.7.19 UINT4 COUNT 72 No No
server_nfs3_link 0/7.7.20 UINT4 COUNT 76 No No
server_nfs3_readdir 0/7.7.21 UINT4 COUNT 80 No No
server_nfs3_readdirplus 0/7.7.22 UINT4 COUNT 84 No No
server_nfs3_filesysstat 0/7.7.23 UINT4 COUNT 88 No No
server_nfs3_filesysinfo 0/7.7.24 UINT4 COUNT 92 No No
server_nfs3_pathconf 0/7.7.25 UINT4 COUNT 96 No No
server_nfs3_commit 0/7.7.26 UINT4 COUNT 100 No No

Table: ONC NFS Version 3 Server Counters

Network Protocol Class

These subclasses are based entirely on the pre-existing standard SNMP MIB classes for network protocol monitoring. They are provided as part of the UMA datapool definition to allow the data to be stored alongside other data in a synchronized and standardized format. The metrics defined here are exactly those defined by the SNMP MIBs.

Per-network Interface Statistics

The per-interface data instances match the network device configuration instances.

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
per_interface_packets_in 0/8.1.1 UINT8 COUNT 0 No No
per_interface_packets_out 0/8.1.2 UINT8 COUNT 8 No No
per_interface_collisions 0/8.1.3 UINT8 COUNT 16 No No
per_interface_kbytes_in 1/8.1.4 UINT8 COUNT 24 No No
per_interface_kbytes_out 1/8.1.5 UINT8 COUNT 32 No No

Table: Per-network Interface Statistics

IP Counters

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
ip_total 1/8.2.1 UINT4 COUNT 0 No No
ip_checksums 1/8.2.2 UINT4 COUNT 4 No No
ip_tooshort 1/8.2.3 UINT4 COUNT 8 No No
ip_toosmall 1/8.2.4 UINT4 COUNT 12 No No
ip_badhlen 1/8.2.5 UINT4 COUNT 16 No No
ip_badlen 1/8.2.6 UINT4 COUNT 20 No No
ip_fragment 1/8.2.7 UINT4 COUNT 24 No No
ip_fragdropped 1/8.2.8 UINT4 COUNT 28 No No
ip_fragtimeout 1/8.2.9 UINT4 COUNT 32 No No
ip_forward 1/8.2.10 UINT4 COUNT 36 No No
ip_cantforward 1/8.2.11 UINT4 COUNT 40 No No
ip_redirectsent 1/8.2.12 UINT4 COUNT 44 No No
ip_unsupprot 1/8.2.13 UINT4 COUNT 48 No No
ip_delivered 1/8.2.14 UINT4 COUNT 52 No No
ip_localoutput 1/8.2.15 UINT4 COUNT 56 No No
ip_odropped 1/8.2.16 UINT4 COUNT 60 No No
ip_reassembled 1/8.2.17 UINT4 COUNT 64 No No
ip_fragmented 1/8.2.18 UINT4 COUNT 68 No No
ip_ofragments 1/8.2.19 UINT4 COUNT 72 No No
ip_cantfrag 1/8.2.20 UINT4 COUNT 76 No No
ip_badoptions 1/8.2.21 UINT4 COUNT 80 No No
ip_noroute 1/8.2.22 UINT4 COUNT 84 No No

Table: IP Counters

TCP Counters

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
tcp_sndtotal 1/8.3.1 UINT4 COUNT 0 No No
tcp_totaldata 1/8.3.2 UINT4 COUNT 4 No No
tcp_datsbytesent 1/8.3.3 UINT4 COUNT 8 No No
tcp_sendrecdatapks_retransmitted 1/8.3.4 UINT4 COUNT 12 No No
tcp_sendrecbytes_retransmitted 1/8.3.5 UINT4 COUNT 16 No No
tcp_total_rec_packets 1/8.3.6 UINT4 COUNT 20 No No
tcp_total_rec_packets_inseq 1/8.3.7 UINT4 COUNT 24 No No
tcp_total_rec_bytes_inseq 1/8.3.8 UINT4 COUNT 28 No No
tcp_checksumerrors 1/8.3.9 UINT4 COUNT 32 No No
tcp_num_packet_badoffsets 1/8.3.10 UINT4 COUNT 36 No No
tcptcp_tooshort 1/8.3.11 UINT4 COUNT 40 No No
tcp_dup_packets_received 1/8.3.12 UINT4 COUNT 44 No No
tcp_dup_bytes_received 1/8.3.13 UINT4 COUNT 48 No No
tcp_connection_initiated 1/8.3.14 UINT4 COUNT 52 No No
tcp_connection_accepts 1/8.3.15 UINT4 COUNT 56 No No
tcp_connections_dropped 1/8.3.16 UINT4 COUNT 60 No No
tcp_connection_closed 1/8.3.17 UINT4 COUNT 64 No No
tcp_connections_estabilish_and_dropped 1/8.3.18 UINT4 COUNT 68 No No
tcp_closed 1/8.3.19 UINT4 COUNT 72 No No
tcp_segstimed 1/8.3.20 UINT4 COUNT 76 No No
tcp_rttupdated 1/8.3.21 UINT4 COUNT 80 No No
tcp_timeoutdropped 1/8.3.22 UINT4 COUNT 84 No No
tcp_retrans_timeout 1/8.3.23 UINT4 COUNT 88 No No
tcp_keepalive_timeout 1/8.3.24 UINT4 COUNT 92 No No
tcp_presisit_timeout 1/8.3.25 UINT4 COUNT 96 No No
tcp_send_ack 1/8.3.26 UINT4 COUNT 100 No No
tcp_send_probe 1/8.3.27 UINT4 COUNT 104 No No
tcp_send_update_packet 1/8.3.28 UINT4 COUNT 108 No No
tcp_send_window_update 1/8.3.29 UINT4 COUNT 112 No No
tcp_send_control 1/8.3.30 UINT4 COUNT 116 No No
tcp_rec_partial_dup_packet 1/8.3.31 UINT4 COUNT 120 No No
tcp_rec_partial_dup_bytes 1/8.3.32 UINT4 COUNT 124 No No
tcp_rec_out_order_packet 1/8.3.33 UINT4 COUNT 128 No No
tcp_rec_out_order_bytes 1/8.3.34 UINT4 COUNT 132 No No
tcp_rec_packet_closed_window 1/8.3.35 UINT4 COUNT 136 No No
tcp_rec_bytes_closed_window 1/8.3.36 UINT4 COUNT 140 No No
tcp_rec_after_closed 1/8.3.37 UINT4 COUNT 144 No No
tcp_rec_windown_probe 1/8.3.38 UINT4 COUNT 148 No No
tcp_rec_dupilicate_packet 1/8.3.39 UINT4 COUNT 152 No No
tcp_rec_dupilicate_packet 1/8.3.40 UINT4 COUNT 156 No No
tcp_rec_ack_unsent 1/8.3.41 UINT4 COUNT 160 No No
tcp_rec_ack_packets 1/8.3.42 UINT4 COUNT 164 No No
tcp_rec_ack_bytes 1/8.3.43 UINT4 COUNT 168 No No
tcp_rec_window_updates 1/8.3.44 UINT4 COUNT 172 No No
tcp_pcbcachemiss 1/8.3.45 UINT4 COUNT 176 No No
tcp_predict_header_date 1/8.3.46 UINT4 COUNT 180 No No
tcp_predict_header_ack 1/8.3.47 UINT4 COUNT 184 No No
tcp_rec_dupilicate_packet 1/8.3.48 UINT4 COUNT 188 No No
tcp_segments_dropped_paws 1/8.3.49 UINT4 COUNT 192 No No

Table: TCP Counters

UDP Subclass

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
udp_ipacket 1/8.4.1 UINT4 COUNT 0 No No
udp_hdrops 1/8.4.2 UINT4 COUNT 4 No No
udp_badlength 1/8.4.3 UINT4 COUNT 8 No No
udp_checksum 1/8.4.4 UINT4 COUNT 12 No No
udp_noport 1/8.4.5 UINT4 COUNT 16 No No
udp_noport_broadcast 1/8.4.6 UINT4 COUNT 20 No No
udp_fullsocket 1/8.4.7 UINT4 COUNT 24 No No
udp_opackets 1/8.4.8 UINT4 COUNT 28 No No
udp_pcbcachemiss 1/8.4.9 UINT4 COUNT 32 No No

Table: UDP Subclass

ICMP Counters

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
icmp_errors opt/8.5.1 UINT4 COUNT 0 No No
icmp_badcode opt/8.5.2 UINT4 COUNT 4 No No
icmp_tooshort opt/8.5.3 UINT4 COUNT 8 No No
icmp_checksum opt/8.5.4 UINT4 COUNT 12 No No
icmp_badlen opt/8.5.5 UINT4 COUNT 16 No No
icmp_reflect opt/8.5.6 UINT4 COUNT 20 No No

Table: ICMP Counters

ICMP Histogram Counters

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
icmphist_output_echoreply opt/8.6.1 UINT4 COUNT 0 No No
icmphist_output_destunreach opt/8.6.2 UINT4 COUNT 4 No No
icmphist_output_outofseq opt/8.6.3 UINT4 COUNT 8 No No
icmphist_output_redirect opt/8.6.4 UINT4 COUNT 12 No No
icmphist_output_echorequest opt/8.6.5 UINT4 COUNT 16 No No
icmphist_output_timelimite opt/8.6.6 UINT4 COUNT 20 No No
icmphist_output_parameterprob opt/8.6.7 UINT4 COUNT 24 No No
icmphist_output_timesrequest opt/8.6.8 UINT4 COUNT 28 No No
icmphist_output_timesrequest opt/8.6.9 UINT4 COUNT 32 No No
icmphist_output_addressmaskreq opt/8.6.10 UINT4 COUNT 36 No No
icmphist_output_addressmaskreply opt/8.6.11 UINT4 COUNT 40 No No
icmphist_input_echoreply opt/8.6.12 UINT4 COUNT 44 No No
icmphist_input_destunreach opt/8.6.13 UINT4 COUNT 48 No No
icmphist_input_outofseq opt/8.6.14 UINT4 COUNT 52 No No
icmphist_input_redirect opt/8.6.15 UINT4 COUNT 56 No No
icmphist_input_echorequest opt/8.6.16 UINT4 COUNT 60 No No
icmphist_input_timelimite opt/8.6.17 UINT4 COUNT 64 No No
icmphist_input_parameterprob opt/8.6.18 UINT4 COUNT 68 No No
icmphist_input_timesrequest opt/8.6.19 UINT4 COUNT 72 No No
icmphist_input_timesreply opt/8.6.20 UINT4 COUNT 76 No No
icmphist_input_addressmaskreq opt/8.6.21 UINT4 COUNT 80 No No
icmphist_input_addressmaskreply opt/8.6.22 UINT4 COUNT 84 No No

Table: ICMP Histogram Counters

IGMP Counters

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
igmp_rcv_total opt/8.7.1 UINT4 COUNT 0 No No
igmp_rcv_tooshort opt/8.7.2 UINT4 COUNT 4 No No
igmp_rcv_checksum opt/8.7.3 UINT4 COUNT 8 No No
igmp_rcv_queries opt/8.7.4 UINT4 COUNT 12 No No
igmp_rcv_badqueries opt/8.7.5 UINT4 COUNT 16 No No
igmp_rcv_reports opt/8.7.6 UINT4 COUNT 20 No No
igmp_rcv_badreports opt/8.7.7 UINT4 COUNT 24 No No
igmp_rcv_ourreports opt/8.7.8 UINT4 COUNT 28 No No
igmp_snd_reports opt/8.7.9 UINT4 COUNT 32 No No

Table: IGMP Counters

Accounting

Per-work Unit Termination Record

Data Attributes MLI Attributes
Label Level Data Type Units Offset VLDS Instance
  /DatumId       Object Array
accounting_flag 0/9.1.1 UINT4 NOUNITS 0 No No
exit_status 0/9.1.2 UINT4 NOUNITS 4 No No
user_id 0/9.1.3 UINT4 NOUNITS 8 No No
group_id 0/9.1.4 UNIT4 NOUNITS 12 No No
tty_name 0/9.1.5 TEXTSTRING NOUNITS 16 Yes No
beginning_time 0/9.1.6 UINT8 TIMESTAMP 24 No No
usr_time 0/9.1.7 UINT8 TIMEVAL 32 No No
system_time 0/9.1.8 UINT8 TIMEVAL 40 No No
elapsed_time 0/9.1.9 UINT8 TIMEVAL 48 No No
memory 0/9.1.10 UINT8 BYTESECS 56 No No
character_rw 0/9.1.11 UINT8 BYTES 64 No No
block_rw 0/9.1.12 UINT8 BYTES 72 No No
command 0/9.1.13 TEXTSTRING NOUNITS 80 Yes No

Table: Per-work Unit Termination Record

This maps directly to the common System V accounting structure. That structure uses a special compact datatype that must be expanded before reporting these values.

Definitions

accounting_flags

Flag Value Comment
AFORK 0001 has executed fork, but no exec
ASU 0002 used super-user privileges
ACOMPAT 0004 used compatibility mode
ACORE 0010 dumped core
AXSIG 0020 killed by a signal
AEXPND 0040 expanded acct structure
ACCTF 0300 record type: 00 = acct

exit_status
returned by the work unit.

user_id
for accounting purposes.

group_id
for accounting purposes.

tty_name
control typewriter name.

beginning_time
when the work unit started.

user_time
user time charged.

system_time
system time charged.

elapsed_time
elapsed time duration for the work unit.

memory
memory usage in bytes*seconds units. The RSS value in pages is accumulated on each clock tick that the work unit was running. This should be converted from page*tick units to byte*seconds units.

character_rw
data transferred by read and write calls via character devices.

block_rw
data read or written via block devices, that is, local filesystem.

command
name.


Why not acquire a nicely bound hard copy?
Click here to return to the publication details or order a copy of this publication.

Contents Next section Index