Site /
            NjmonAIXVIOSStatDetails
njmon AIX and VIOS stat Details
Notes:
- Approximately 800 stats
- Assuming single CPU, single disk, single network and one process and on a VIOS one of each virtual resource.
- For process stats add the -P command line option.
- If you have more (typically 10's disks and 100's processes) then their could be many thousands of stats.
 
- WORK IN PROGRESS - this needs further work:
- Remove the code fragment.
- Add the units (if we can work that out).
- Add some comments on meaning and usefulness.
- The order here is the order in the source code - perhaps we need to change that to the order in the output files.
 
- Data types:
- long means it is an integer.
- double means it is a floating point number (all values have 3 digits after the decimal point).
- hex means it is a hexadecimal number or a set of bits in a flag = these are rare - you have to check the docs.
 
- When it says Stats from perfstat_****() this means the data is extracted from the excellent AIX perfstat library.
- Read on a (recent) AIX server the file /usr/include/libperfstat.h for a one line description for each stat - then you know as much as I do.
- There are manuals pages too but the words are the same!!
- KnowledgeCenter page for perfstat API
- You will find the bulk on the njmon for AIX and VIOS is using this library.
 
server
- Basic AIX and server stats from various sources
| double | "aix_version" | AIX7.2 appears as number 7.2 | 
| long | "aix_technology_level" | TL | 
| long | "aix_service_pack" | SP | 
| long | "aix_build_year" | This is the year the AIX, TL and Service pack was released | 
| long | "aix_build_week" | This week number AIX, TL and Service pack was released from 1 to 52 | 
| string | "serial_no" | Serial number of the server this LPAR is running on | 
| string | "lpar_number_name" | LPAR Id number defined on the HMC and the name it has on the HMC for example "6,blue" | 
| string | "machine_type" | the IBM machine type model like "IBM,8404-E8E" | 
| string | "uname_node" | normally the short hostname | 
timestamp
- Time and date of each snap shoot and the loop counter
| string | "datetime" | ISO standard date time string like "2019-01-28T15:30:59" January 28th | 
| string | "UTC" | Universal Coordinated Time (GMT) | 
| long | "snapshot_seconds" | Seconds between taking snapshots of the stats | 
| long | "snapshot_maxloops" | Maximum number of snapshots and njmon will stop | 
| long | "snapshot_loop" | Current snapshot number | 
gpfs_io_total
- GPFS = Spectrum Scale stats from running the mmpmon tool as a child process
| string | "node" | |
| string | "name" | |
| long | "rc" | status 0 = OK | 
| long | "time" | epoc seconds | 
| long | "tu" | |
| long | "readbytes" | |
| long | "writebytes" | |
| long | "open" | |
| long | "close" | |
| long | "reads" | |
| long | "writes" | |
| long | "directorylookup" | |
| long | "inodeupdate" | 
gpfs_filesystems
- GPFS filesystem level stats from running the mmpmon tool as a child process
| string | "node" | |
| string | "name" | |
| long | "rc" | status 0 = OK | 
| long | "time" | epoc seconds | 
| long | "tu" | |
| string | "cl" | |
| long | "disks" | |
| long | "readbytes" | |
| long | "writebytes" | |
| long | "open" | |
| long | "close" | |
| long | "reads" | |
| long | "writes" | |
| long | "directorylookup" | |
| long | "inodeupdate" | 
config
- This data from the perfstat_partition_config() function
| string | "partitionname" | |
| string | "nodename" | |
| string | "processorFamily" | |
| string | "processorModel" | |
| string | "machineID" | |
| double | "processorMHz" | |
| long | "pcpu_max" | |
| long | "pcpu_online" | |
| string | "OSname" | |
| string | "OSversion" | |
| string | "OSbuild", | |
| long | "lcpus" | |
| long | "smtthreads" | |
| long | "drives" | |
| long | "nw_adapter" | |
| long | "cpucap_min" | |
| long | "cpucap_max" | |
| long | "cpucap_desired" | |
| long | "cpucap_online" | |
| long | "cpucap_weightage" | |
| double | "entitled_proc_capacity" | |
| long | "vcpus_min" | |
| long | "vcpus_max" | |
| long | "vcpus_desired" | |
| long | "vcpus_online" | |
| long | "processor_poolid" | |
| long | "activecpusinpool" | |
| long | "cpupool_weightage" | |
| long | "sharedpcpu" | |
| long | "maxpoolcap" | |
| long | "entpoolcap" | |
| long | "mem_min" | |
| long | "mem_max" | |
| long | "mem_desired" | |
| long | "mem_online" | |
| long | "mem_weightage" | |
| long | "ams_totiomement" | |
| long | "ams_mempoolid" | |
| long | "ams_hyperpgsize" | |
| long | "expanded_mem_min" | |
| long | "expanded_mem_max" | |
| long | "expanded_mem_desired" | |
| long | "expanded_mem_online" | |
| long( | "ame_targetmemexpfactor" | |
| long | "ame_targetmemexpsize" | |
| hex | "subprocessor_mode" | 
GENERIC disk stats
- Same stats are used for many resources
| string | "description" | |
| string | "adapter_type" | "SCSI, SAS, other")"Virtual SCSI/SAS Adapter", "Fibre Channel" or "unknown" | 
| long | "devices" | number of devices | 
| long | "size_mb" | |
| long | "free_mb" | |
| long | "capable_rate_kbps" | |
| long | "bsize" | |
| double | "transfers" | transfer per second | 
| double | "rtransfers" | read transfer per second | 
| double | "wtransfers" | write transfer per second | 
| double | "read_kb" | read KB per second | 
| double | "write_kb" | write KB per second | 
| double | "read_time" | average read service time | 
| double | "write_time" | average write service time | 
| double | "time" | CHECK this one - time! | 
disk_adapters
- Stats from perfstat_diskadapter()
- See GENERIC disk stats
vios_vhost
- Stats from perfstat_virtualdiskadapter()
- See GENERIC disk stats
GENERIC Fibre Channel stats
| string | "state" | "UP", "DOWN" or "unknown" | 
| double | "InputRequests" | per second | 
| double | "OutputRequests" | per second | 
| double | "InputBytes" | per second | 
| double | "OutputBytes" | per second | 
| long | "EffMaxTransfer" | |
| long | "NoDMAResourceCnt" | |
| long | "NoCmdResourceCnt" | |
| string | "AttentionType" | "Link down" or "Link up" | 
| long | "SecondsSinceLastReset" | |
| double | "TxFrames" | per second | 
| double | "TxWords" | per second | 
| double | "RxFrames" | per second | 
| double | "RxWords" | per second | 
| long | "PortSpeed" | |
| long | "PortSupportedSpeed" | |
| long | "PortFcId" | |
| string | "PortType" | |
| hex | "PortWWN" | port World wide number | 
| string | "adapter_type" | "Fibre Channel or "Virtual Fibre Channel" | 
| string | "physical_name" | |
| string | "client_part_name" | 
fc_adapters
- Stats from perfstat_fcstat()
- KnowledgeCenter code example
- See GENERIC Fibre Channel stats above
vios_virtual_fcadapter
- Stats from perfstat_virtual_fcadapter()
- See GENERIC Fibre Channel stats above
GENERIC network stats
| string | "adapter_type" | |
| double | "tx_packets" | per second | 
| double | "tx_bytes" | per second | 
| double | "tx_interrupts" | per second | 
| double | "tx_errors" | per second | 
| double | "tx_packets_dropped" | per second | 
| double | "tx_queue_size" | per second | 
| double | "tx_queue_len" | count | 
| double | "tx_queue_overflow" | count | 
| double | "tx_broadcast_packets" | per second | 
| double | "tx_multicast_packets" | per second | 
| double | "tx_carrier_sense" | per second | 
| double | "tx_DMA_underrun" | per second | 
| double | "tx_lost_CTS_errors" | per second | 
| double | "tx_max_collision_errors" | per second | 
| double | "tx_late_collision_errors" | per second | 
| double | "tx_deferred" | per second | 
| double | "tx_timeout_errors" | per second | 
| double | "tx_single_collision_count" | count | 
| double | "tx_multiple_collision_count" | count | 
| double | "rx_packets" | per second | 
| double | "rx_bytes" | per second | 
| double | "rx_interrupts" | per second | 
| double | "rx_errors" | per second | 
| double | "rx_packets_dropped" | count | 
| double | "rx_bad_packets" | count | 
| double | "rx_multicast_packets" | per second | 
| double | "rx_broadcast_packets" | per second | 
| double | "rx_CRC_errors" | per second | 
| double | "rx_DMA_overrun" | per second | 
| double | "rx_alignment_errors" | per second | 
| double | "rx_noresource_errors" | per second | 
| double | "rx_collision_errors" | per second | 
| double | "rx_packet_tooshort_errors" | count | 
| double | "rx_packet_toolong_errors" | count | 
| double | "rx_packets_discardedbyadapter" | per second | 
VIOS SEA network_bridged
- Stats from perfstat_bridgedadapters()
- See GENERIC network stat above
network_adapters
- Stats from perfstat_netadapter()
- See GENERIC network stat above
network_interfaces
- Stats from perfstat_netinterface()
| string | "description" | |
| long | "mtu" | count | 
| double | "ipackets" | per second | 
| double | "ibytes" | per second | 
| double | "ierrors" | per second | 
| double | "opackets" | per second | 
| double | "obytes" | per second | 
| double | "oerrors" | per second | 
| double | "collisions" | per second | 
| double | "xmitdrops" | per second | 
| double | "if_iqdrops" | per second | 
| double | "if_arpdrops" | per second | 
| double | "bitrate_mbit" | Mbit per second | 
network_total
- Stats from perfstat_netinterface_total()
| double | "networks" | count | 
| double | "ipackets" | per second | 
| double | "ibytes" | per second | 
| double | "ierrors" | per second | 
| double | "opackets" | per second | 
| double | "obytes" | per second | 
| double | "oerrors" | per second | 
| double | "collisions" | per second | 
| double | "xmitdrops" | per second | 
logical_cpu
- Stats from perfstat_cpu()
- logical CPU stats utilisation (the SMT threads)
| long | "user" | utilisation percent | 
| long | "sys" | utilisation percent | 
| long | "wait" | utilisation percent | 
| long | "idle" | utilisation percent | 
physical_cpu
- Stats from perfstat_cpu()
- The CPU core utilisation based on HW ticks
| long | "user" | utilisation percent | 
| long | "sys" | utilisation percent | 
| long | "wait" | utilisation percent | 
| long | "idle" | utilisation percent | 
cpu_syscals - Check division by elapsed
- Stats from perfstat_cpu()
- System calls from application into the AIX Kernel
| double | "syscall" | rate | 
| double | "sysread" | rate | 
| double | "syswrite" | rate | 
| double | "sysfork" | rate | 
| double | "sysexec" | rate | 
| double | "sysreadch" | rate | 
| double | "syswritech" | rate | 
processes Stats from perfstat_process_util()
- The running process details
| long | "sizeof" | |
| long | "items" | |
| long | "returned" | |
| long | "error" | |
| long | "pid" | |
| string | "name" | Process name | 
| long | "priority" | |
| long | "num_threads" | |
| long | "uid" | |
| long | "wparid" | |
| long | "size" | |
| long | "real_mem_data" | |
| long | "real_mem_text" | |
| long | "virt_mem_data" | |
| long | "virt_mem_text" | |
| long | "shared_lib_data" | |
| long | "heap_size" | |
| long | "real_inuse" | |
| long | "virt_inuse" | |
| long | "pinned" | |
| long | "pgsp_inuse" | |
| long | "filepages" | |
| long | "real_inuse_map" | |
| long | "virt_inuse_map" | |
| long | "pinned_inuse_map" | |
| double | "ucpu_time" | |
| double | "scpu_time" | |
| long | "inBytes" | |
| long | "outBytes" | |
| long | "inOps" | |
| long | "outOps" | 
cpu_util
- Stats from perfstat_cpu_util()
| double | "user_pct" | percent | 
| double | "kern_pct" | percent | 
| double | "idle_pct" | percent | 
| double | "wait_pct" | percent | 
| double | "physical_busy" | |
| double | "physical_consumed" | Also called CPU Busy | 
| double | "idle_donated_pct" | percent | 
| double | "busy_donated_pct" | percent | 
| double | "idle_stolen_pct" | percent | 
| double | "busy_stolen_pct" | percent | 
| double | "entitlement" | |
| double | "entitlement_pct" | |
| double | "freq_pct" | Over clock percent 100%=nominal GHz | 
| double | "nominal_mhz" | |
| double | "current_mhz" | 
cpu_details
- Stats from perfstat_cpu_total()
| long | "cpus_active" | |
| long | "cpus_configured" | |
| double | "mhz" | |
| string | "cpus_description" | 
kernel
- AIX Kernel Stats from perfstat_cpu_total()
| double | "pswitch" | per second | 
| double | "syscall" | per second | 
| double | "sysread" | per second | 
| double | "syswrite" | per second | 
| double | "sysfork" | per second | 
| double | "sysexec" | per second | 
| double | "readch" | per second | 
| double | "writech" | per second | 
| double | "devintrs" | per second | 
| double | "softintrs" | per second | 
| double | "load_avg_1_min" | |
| double | "load_avg_5_min" | |
| double | "load_avg_15_min" | |
| double | "uptime_days" | |
| double | "run_queue" | |
| double | "swp_queue" | |
| double | "bread" | per second | 
| double | "bwrite" | per second | 
| double | "lread" | per second | 
| double | "lwrite" | per second | 
| double | "phread" | per second | 
| double | "phwrite" | per second | 
| long | "runocc_count" | |
| long | "swpocc_count" | |
| long | "runocc_avg" | per second | 
| long | "swpocc_avg" | per second | 
| double | "iget" | per second | 
| double | "namei" | per second | 
| double | "dirblk" | per second | 
| double | "msg" | per second | 
| double | "sema" | per second | 
| double | "rcvint" | per second | 
| double | "xmtint" | per second | 
| double | "mdmint" | per second | 
| double | "tty_rawinch" | per second | 
| double | "tty_caninch" | per second | 
| double | "tty_rawop" | |
| hex | "lpar_flags" | A set of bits (flags) in a hexadecimal (check the docs) | 
| long | "pcpus_in_sys" | |
| long | "online_vcpus" | |
| long | "online_lcpus" | |
| long | "pcpus_in_pool" | |
| long | "unalloc_capacity" | |
| double | "entitled_capacity" | |
| long | "variable_weight" | |
| long | "unalloc_weight" | |
| long | "min_req_vcpu_capacity" | |
| long | "group_id" | |
| long | "pool_id" | |
| long | "shcpus_in_sys" | |
| double | max_pool_capacity | |
| double | entitled_pool_capacity" | |
| long | "pool_max_time" | |
| long | "pool_busy_time" | |
| long | "pool_scaled_busy_time" | |
| long | "shcpu_tot_time" | |
| long | "shcpu_busy_time" | |
| long | "shcpu_scaled_busy_time" | |
| long | "ent_mem_capacity" | |
| long | "phys_mem" | |
| long | "vrm_pool_physmem" | |
| long | "hyp_pagesize" | |
| long | "rm_pool_id" | |
| long | "vrm_group_id" | |
| long | "var_mem_weight" | |
| long | "unalloc_var_mem_weight" | |
| long | "*unalloc_ent_mem_capacity" | |
| long | "true_online_memory" | |
| long | "ame_online_memory" | |
| long | "ame_type" | |
| long | "ame_factor" | |
| long | "em_part_major_code" | |
| long | "em_part_minor_code" | |
| long | "bytes_coalesced" | |
| long | "bytes_coalesced_mempool" | |
| long | "purr_coalescing" | |
| long | "spurr_coalescing" | 
VIOS Shared Storage Pool ssp_global
- Stats from perfstat_ssp(SSPGLOBAL)
| string | "ClusterName" | |
| string | "PoolName" | |
| long | "TotalSpace_MB" | |
| long | "TotalUsedSpace_MB" | 
VIOS Shared Storage Pool ssp_pv
- Stats from perfstat_ssp(SSPDISK)
| long | "capacity_MB" | |
| long | "free_MB" | |
| string | "tiername" | |
| string | "failure_group" | 
VIOS Shared Storage Pool ssp_lu
- stats from perfstat_ssp(SSPVTD)
| string | "type" | |
| long | "size_MB" | |
| long | "free_MB" | |
| long | "usage_MB" | |
| long | "LPAR_id" | |
| string | "MTM" | Machine type Model | 
| string | "VTDname" | |
| string | "DRCname" | |
| string | "udid" | 
VIOS Shared Storage Pool ssp_node
- Stats from perfstat_ssp(SSPNODE)
| string | "ipaddress" | |
| string | "MTMS" | |
| long | "lparid" | |
| string | "ioslevel" | |
| string | "status" | 1=OK | 
| string | "poolstatus" | 1=OK | 
lpar_format1
| string | "lpar_name" | |
| long | "min_memory" | |
| long | "max_memory" | |
| long | "memory_region | |
| long | "dispatch_wheel_time" | |
| long | "lpar_number" | |
| long | "lpar_flags" | |
| long | "max_pcpus_in_sys" | |
| long | "min_vcpus" | |
| long | "max_vcpus" | |
| long | "min_lcpus" | |
| long | "max_lcpus" | |
| double | "minimum_capacity" | percent | 
| double | "maximum_capacity" | percent | 
| double | "capacity_increment" | percent | 
| long | "smt_threads" | |
| long | "num_lpars | AIX 7 and above | 
| double | "desired_capacity" | percent | 
| long | "desired_vcpus" | |
| long | "desired_memory" | |
| long | "desired_variable_capwt | |
| long | "servpar_id | AIX 7 and above | 
| long | "true_max_memory" | |
| long | "true_min_memory" | |
| long | "ame_max_memory" | |
| long | "ame_min_memory" | |
| long | "spcm_status" | |
| long | "spcm_max" | 
lpar_format2
| long | "online_memory" | |
| double | "tot_dispatch_time" | rate | 
| double | "pool_idle_time" | rate | 
| long | "dispatch_latency" | |
| hex | "lpar_flags" | A set of bits (flags) in a hexadecimal (check the docs) | 
| long | "pcpus_in_sys" | |
| long | "online_vcpus" | |
| long | "online_lcpus" | |
| long | "pcpus_in_pool" | |
| long | "unalloc_capacity" | |
| double | "entitled_capacity" | percent | 
| long | "variable_weight" | |
| long | "unalloc_weight" | |
| long | "min_req_vcpu_capacity" | |
| long | "group_id" | |
| long | "pool_id" | |
| long | "shcpus_in_sys" | |
| double | "max_pool_capacity" | percent | 
| double | "entitled_pool_capacity" | percent | 
| double | "pool_max_time" | rate | 
| double | "pool_busy_time" | rate | 
| double | "pool_scaled_busy_time" | rate | 
| double | "shcpu_tot_time" | rate | 
| double | "shcpu_busy_time" | rate | 
| double | "shcpu_scaled_busy_time" | rate | 
| long | "ent_mem_capacity" | |
| long | "phys_mem" | |
| long | "vrm_pool_physmem" | |
| long | "hyp_pagesize" | |
| long | "vrm_pool_id" | |
| long | "vrm_group_id" | |
| long | "var_mem_weight" | |
| long | "unalloc_var_mem_weight" | |
| long | "unalloc_ent_mem_capacity" | |
| long | "true_online_memory" | |
| long | "ame_online_memory" | |
| long | "ame_type" | |
| long | "ame_factor" | |
| long | "em_part_major_code" | |
| long | "em_part_minor_code" | |
| long | "bytes_coalesced" | |
| long | "bytes_coalesced_mempool" | |
| long | "purr_coalescing" | |
| long | "spurr_coalescing" | 
The End
