perfstat_diskpath 子例程
用途
检索个别磁盘路径使用情况统计信息。
库
Perfstat 库 (libperfstat.a)
语法
#include <libperfstat.h>
int perfstat_diskpath (name, userbuff, sizeof_struct, desired_number)
perfstat_id_t *name;
perfstat_diskpath_t *userbuff
size_t sizeof_struct;
int desired_number;描述
perfstat_diskpath 子例程检索一个或多个单独的磁盘路径使用情况统计信息。 同样功能也可用于检索可用磁盘路径统计信息集的数量。
要获取一组或多组磁盘路径使用情况度量,请将 name 参数设置为需要统计信息的第一个磁盘路径的名称,并设置 desired_number 参数。 要从第一个磁盘路径开始,请指定 "" 或 FIRST_DISKPATH 作为 name 参数。 要从特定磁盘的第一个路径开始,请将 name 参数设置为 diskname。 userbuff 参数必须始终指向足够大的内存区域,以包含此函数将复制的所需数目的 perfstat_diskpath_t 结构。 返回时, name 参数将设置为下一个磁盘路径的名称,或者在复制所有结构后设置为 ""。
要检索磁盘路径使用情况度量的可用集合数,请将 name 和 userbuff 参数设置为 NULL ,并将 desired_number 参数设置为 0。 将返回可用集数。
perfstat_diskpath 子例程从 ODM 数据库检索信息。 此信息将自动高速缓存到假定在装入后冻结的字典中。 每当机器配置发生更改时,都必须调用 perfstat_reset 子例程来清空字典。
为提高系统性能,当前版本的AIX® 默认禁用了磁盘输入和输出统计信息的收集。
chdev -l sys0 -a iostat=truelsattr -E -l sys0 -a iostat启用磁盘输入和输出统计信息收集的另一种方法是使用 sys_parm API 和 SYSP_V_IOSTRUN 标志:
struct vario var;
sys_parm(SYSP_GET,SYSP_V_IOSTRUN, &var);struct vario var;
var.v.v_iostrun.value=1; /* 1 to set & 0 to unset */
sys_parm(SYSP_SET,SYSP_V_IOSTRUN, &var);此子例程在 工作负载分区 (WPAR) 中不受支持。 它不知道 WPAR。
参数
| 项 | 描述 |
|---|---|
| 名称 | 包含 "" , FIRST_DISKPATH ,标识需要统计信息的第一个磁盘路径的名称,或标识需要路径统计信息的磁盘的名称。 例如: |
| 用户缓冲区 | 指向要使用一个或多个 perfstat_diskpath_t 结构填充的内存区域。 |
| 大小结构 | 指定 perfstat_diskpath_t 结构的大小: sizeof(perfstat_diskpath_t) |
| 期望数 (desired_number) | 指定要复制到 userbuff的 perfstat_diskpath_t 结构数。 |
返回值
除非该函数用于检索可用结构数,否则成功完成时将返回填充的结构数。 如果不成功,则返回值为-1并设置errno全局变量。
错误代码
如果下列其中一项为 true ,那么 perfstat_diskpath 子例程将失败:
| 项 | 描述 |
|---|---|
| EINVAL | 其中一个参数无效。 |
| Efault | 内存不足。 |
| ENOMEM | 字符串缺省长度太短。 |
| ENOMSG | 无法访问字典。 |
文件
libperfstat.h 文件定义标准宏,数据类型和子例程。