NjmonAIXVIOSStatDetails

njmon AIX and VIOS stat Details

Notes:

  1. 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.
  2. WORK IN PROGRESS - this needs further work:
    1. Remove the code fragment.
    2. Add the units (if we can work that out).
    3. Add some comments on meaning and usefulness.
    4. The order here is the order in the source code - perhaps we need to change that to the order in the output files.
  3. 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.
  4. 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

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" 
doublemax_pool_capacity 
doubleentitled_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_lparsAIX 7 and above
double"desired_capacity"percent
long"desired_vcpus" 
long"desired_memory" 
long"desired_variable_capwt 
long"servpar_idAIX 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