perfstat_node 子例程

用途

这些子例程检索远程节点的子系统类型的性能统计信息。 子程序列表如下

  • 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

Perfstat 库libperfstat.a

语法

#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

描述

这些子程序会在相应的perfstat_subsystem_t结构中返回远程节点的性能统计数据。

只有在调用perfstat_config函数启用节点或集群统计数据收集功能后,才会调用所有这些子程序:

perfstat_config (PERFSTAT_ENABLE | PERFSTAT_CLUSTER_STATS, NULL)

调用perfstat_config函数收集远程节点数据后,节点或群集统计数据收集将被禁用:

perfstat_config (PERFSTAT_DISABLE | PERFSTAT_CLUSTER_STATS, NULL)

要获取群集中任何特定节点的统计数据,请在name参数中指定节点名称值。 必须分配userbuff参数。 必须设置所需的数字参数。

注意:运行perfstatAPI 调用的远程节点和当前节点属于同一个群集。

perfstat_fcstat_node子程序对非 root 用户不起作用。

参数

描述
name.u.nodename 指定节点名。
name.spec 指定节点说明符。
name.name 指定收集统计数据的第一个组件。 例如, hdisk0, hdisk1, cpu0和 cpu1。
psize 指定收集统计数据的页面大小。
用户缓冲区 指向要填充perfstat_<subsystem>_t结构的内存区域。
sizeof_userbuff 指定perfstat_<subsystem>_t结构的大小。
所需数量 指定要返回的结构数。

返回值

成功完成子例程时,将返回可用结构数。 否则,返回值为-1,并设置errno全局变量来指示错误。

错误代码

如果以下一项或多项为真,则perfstat_node子例程失败:

描述
EINVAL 其中一个参数无效。
ENOENT 要么未使用perfstat_config()启用群集统计数据收集功能,要么当前不支持群集统计数据收集功能。

文件

libperfstat.h文件定义了标准宏、数据类型和子程序。