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 参数中指定 Node name 值。 必须分配 userbuff 参数。 必须设置 desired number 参数。
注: 运行
perfstat API 调用的远程节点和当前节点属于同一集群。perfstat_fcstat_node 子例程不适用于非 root 用户。
参数
| 项 | 描述 |
|---|---|
| name.u.nodename | 指定节点名。 |
| name.spec | 指定节点说明符。 |
| name.name | 指定要为其收集统计信息的第一个组件。 例如, hdisk0, hdisk1, cpu0和 cpu1。 |
| psize | 指定收集统计信息的页面大小。 |
| userbuff | 指向要使用 perfstat_<subsystem>_t 结构填充的内存区域。 |
| sizeof_userbuff | 指定 perfstat_<subsystem>_t 结构的大小。 |
| desired_number | 指定要返回的结构数。 |
返回值
成功完成子例程时,将返回可用结构数。 否则,将返回 -1 的值,并设置 errno 全局变量来指示错误。
错误代码
如果下列一项或多项为 true ,那么 perfstat_node 子例程将失败:
| 项 | 描述 |
|---|---|
EINVAL |
其中一个参数无效。 |
ENOENT |
未使用 perfstat_config()启用集群统计信息收集,或者当前不支持集群统计信息收集。 |
文件
libperfstat.h 文件定义标准宏,数据类型和子例程。