perfstat_disk_total 子例程

用途

检索全局磁盘使用情况统计信息。

Perfstat 库 (libperfstat.a)

语法

#include <libperfstat.h>
int perfstat_disk_total (name, userbuff, sizeof_struct, desired_number)
perfstat_id_t *name;
perfstat_disk_total_t *userbuff;
size_t sizeof_struct;
int desired_number;

描述

perfstat_disk_total 子例程返回 perfstat_disk_total_t 结构中的全局磁盘使用情况统计信息。

要获取整个系统的全局统计信息,必须将 name 参数设置为 NULL ,必须分配 userbuff 参数,并且必须将 desired_number 参数设置为 1。

perfstat_disk_total 子例程从 ODM 数据库检索信息。 此信息将自动高速缓存到假定在装入后冻结的字典中。 每当机器配置发生更改时,都必须调用 perfstat_reset 子例程来清空字典。

为提高系统性能,当前版本的AIX 默认禁用了磁盘输入和输出统计信息的收集功能。

要启用此数据的收集,请运行:
chdev -l sys0 -a iostat=true
要显示当前设置,请运行:
lsattr -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);

参数

描述
名称 必须设置为 NULL。
用户缓冲区 指向要使用一个或多个 perfstat_disk_total_t 结构填充的内存区域。
大小结构 指定 perfstat_disk_total_t 结构的大小: sizeof(perfstat_disk_total_t)
期望数 (desired_number) 必须设置为 1。

返回值

成功完成后,将返回可填充的结构数。 这始终是 1。 如果不成功,则返回值为-1并设置errno全局变量。

错误代码

如果下列其中一个为 true ,那么 perfstat_disk_total 子例程将失败:

描述
EINVAL 其中一个参数无效。
Efault 内存不足。
ENOMEM 字符串缺省长度太短。

文件

libperfstat.h 文件定义标准宏,数据类型和子例程。