perfstat_node Subroutine

Purpose

These subroutines retrieve the performance statistics of the subsystem type for a remote node. The list of subroutines are:

  • perfstat_cpu_node
  • perfstat_cpu_total_node
  • perfstat_disk_node
  • perfstat_disk_total_node
  • perfstat_diskadapter_node
  • perfstat_diskpath_node
  • perfstat_fcstat_node
  • perfstat_logicalvolume_node
  • perfstat_memory_page_node
  • perfstat_memory_total_node
  • perfstat_netadapter_node
  • perfstat_netbuffer_node
  • perfstat_netinterface_node
  • perfstat_netinterface_total_node
  • perfstat_pagingspace_node
  • perfstat_partition_total_node
  • perfstat_protocol_node
  • perfstat_tape_node
  • perfstat_tape_total_node
  • perfstat_volumegroup_node

Library

Perfstat library (libperfstat.a)

Syntax

#include <libperfstat.h>

int perfstat_cpu_node (name, userbuff, sizeof_userbuff, desired_number)

perfstat_id_node_t *name;
perfstat_cpu_t *userbuff;
int sizeof_userbuff;
int desired_number;

int perfstat_cpu_total_node (name, userbuff, sizeof_userbuff, desired_number)

perfstat_id_node_t *name;
perfstat_cpu_total_t *userbuff;
int sizeof_userbuff;
int desired_number;

int perfstat_disk_node (name, userbuff, sizeof_userbuff, desired_number)

perfstat_id_node_t *name;
perfstat_disk_t *userbuff;
int sizeof_userbuff;
int desired_number;

int perfstat_disk_total_node (name, userbuff, sizeof_userbuff, desired_number)

perfstat_id_node_t *name;
perfstat_disk_total_t *userbuff;
int sizeof_userbuff;
int desired_number;

int perfstat_diskadapter_node (name, userbuff, sizeof_userbuff, desired_number)

perfstat_id_node_t *name;
perfstat_diskadapter_t *userbuff;
int sizeof_userbuff;
int desired_number;

int perfstat_diskpath_node (name, userbuff, sizeof_userbuff, desired_number)

perfstat_id_node_t *name;
perfstat_diskpath_t *userbuff;
int sizeof_userbuff;
int desired_number;

int perfstat_fcstat_node (name, userbuff, sizeof_userbuff, desired_number)

perfstat_id_node_t *name;
perfstat_fcstat_t *userbuff;
int sizeof_userbuff;
int desired_number;

int perfstat_logicalvolume_node (name, userbuff, sizeof_userbuff, desired_number)

perfstat_id_node_t *name;
perfstat_logicalvolume_t *userbuff;
int sizeof_userbuff;
int desired_number;

int perfstat_memory_page_node (name, psize, userbuff, sizeof_userbuff, desired_number)

perfstat_id_node_t *name;
perfstat_psize_t *psize;
perfstat_memory_page_t *userbuff;
int sizeof_userbuff;
int desired_number;

int perfstat_memory_total_node (name, userbuff, sizeof_userbuff, desired_number)

perfstat_id_node_t *name;
perfstat_memory_total_t *userbuff;
int sizeof_userbuff;
int desired_number;

int perfstat_netadapter_node (name, userbuff, sizeof_userbuff, desired_number)

perfstat_id_node_t *name;
perfstat_netadapter_t *userbuff;
int sizeof_userbuff;
int desired_number;

int perfstat_netbuffer_node (name, userbuff, sizeof_userbuff, desired_number)

perfstat_id_node_t *name;
perfstat_netbuffer_t *userbuff;
int sizeof_userbuff;
int desired_number;

int perfstat_netinterface_node (name, userbuff, sizeof_userbuff, desired_number)

perfstat_id_node_t *name;
perfstat_netinterface_t *userbuff;
int sizeof_userbuff;
int desired_number;

int perfstat_netinterface_total_node (name, userbuff, sizeof_userbuff, desired_number)

perfstat_id_node_t *name;
perfstat_netinterface_total_t *userbuff;
int sizeof_userbuff;
int desired_number;

int perfstat_pagingspace_node (name, userbuff, sizeof_userbuff, desired_number)

perfstat_id_node_t *name;
perfstat_pagingspace_t *userbuff;
int sizeof_userbuff;
int desired_number;

int perfstat_partition_total_node (name, userbuff, sizeof_userbuff, desired_number)

perfstat_id_node_t *name;
perfstat_partition_total_t *userbuff;
int sizeof_userbuff;
int desired_number;

int perfstat_protocol_node (name, userbuff, sizeof_userbuff, desired_number)

perfstat_id_node_t *name;
perfstat_protocol_t *userbuff;
int sizeof_userbuff;
int desired_number;

int perfstat_tape_node (name, userbuff, sizeof_userbuff, desired_number)

perfstat_id_node_t *name;
perfstat_tape_t *userbuff;
int sizeof_userbuff;
int desired_number;

int perfstat_tape_total_node (name, userbuff, sizeof_userbuff, desired_number)

perfstat_id_node_t *name;
perfstat_tape_total_t *userbuff;
int sizeof_userbuff;
int desired_number;

int perfstat_volumegroup_node (name, userbuff, sizeof_userbuff, desired_number)

perfstat_id_node_t *name;
perfstat_volumegroup_t *userbuff;
int sizeof_userbuff;
int desired_number

Description

These subroutines return the performance statistics of the remote node in their corresponding perfstat_subsystem_t structure.

All these subroutines are called only after the node or cluster statistics collection is enabled by calling the perfstat_config function:

perfstat_config (PERFSTAT_ENABLE | PERFSTAT_CLUSTER_STATS, NULL)

The node or cluster statistics collection is disabled after collecting the remote node data by calling the perfstat_config function:

perfstat_config (PERFSTAT_DISABLE | PERFSTAT_CLUSTER_STATS, NULL)

To get the statistics from any particular node in the cluster, specify the Node name value in the name parameter. The userbuff parameter must be allocated. The desired number parameter must be set.

Note: The remote node and the current node in which the perfstat API call runs belong to the same cluster.

The perfstat_fcstat_node subroutine does not work for the nonroot user.

Parameters

Item Description
name.u.nodename Specifies the node name.
name.spec Specifies the node specifier.
name.name Specifies the first component for which statistics is collected. For example, hdisk0, hdisk1, cpu0, and cpu1.
psize Specifies the page size for which the statistics is collected.
userbuff Points to the memory area that is to be filled with the perfstat_<subsystem>_t structure.
sizeof_userbuff Specifies the size of the perfstat_<subsystem>_t structure.
desired_number Specifies the number of structures to return.

Return Values

On successful completion of the subroutine, the number of available structures is returned. Otherwise, a value of -1 is returned and the errno global variable is set to indicate the error.

Error Codes

The perfstat_node subroutine fails if one or more of the following are true:

Item Description
EINVAL One of the parameters are not valid.
ENOENT Either the cluster statistics collection is not enabled using perfstat_config(), or the cluster statistics collection is not currently supported.

Files

The libperfstat.h file defines standard macros, data types, and subroutines.