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文件定义了标准宏、数据类型和子程序。