perfstat_disk 子例程
用途
检索个别磁盘使用情况统计信息。
库
Perfstat 库libperfstat.a
语法
#include <libperfstat.h> int perfstat_disk (name, userbuff, sizeof_struct, desired_number)
perfstat_id_t *name;
perfstat_disk_t *userbuff;
size_t sizeof_struct;
int desired_number;
perfstat_id_t *name;
perfstat_disk_t *userbuff;
size_t sizeof_struct;
int desired_number;
描述
perfstat_disk子程序可检索一个或多个单独的磁盘使用统计数据。 同样功能也可用于检索可用磁盘统计信息集的数量。
要获取一组或多组磁盘使用指标,请将name参数设置为需要统计的第一个磁盘的名称,并设置desired_number参数。 要从第一个磁盘开始,请指定 "" 或 FIRST_DISK 作为 名称。 userbuff参数必须始终指向一个足够大的内存区域,以容纳该函数将复制的所需数量的perfstat_disk_t结构。 返回时, name 参数将设置为下一个磁盘的名称,或者在复制所有结构后设置为 ""。
要检索磁盘使用情况度量的可用集合数,请将 name 和 userbuff 参数设置为 NULL ,并将 desired_number 参数设置为 0。 返回的值将是可用集的数目。
perfstat_disk子程序从ODM数据库中检索信息。 这些信息会自动缓存到字典中,而字典一旦加载就会被冻结。 每当机器配置发生变化时,必须调用 "perfstat_reset子程序刷新字典。
为提高系统性能,当前版本的AIX® 默认禁用了磁盘输入和输出统计信息的收集功能。
要启用此数据的收集,请运行:
chdev -l sys0 -a iostat=true要显示当前设置,请运行:
lsattr -E -l sys0 -a iostat启用磁盘输入和输出统计数据收集的另一种方法是使用 "sys_parmAPI 和 "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);参数
| 项 | 描述 |
|---|---|
| 名称 | 包含""、FIRST_DISK 或标识第一个需要统计的磁盘的名称。 例如: |
| 用户缓冲区 | 指向要填充一个或多个perfstat_disk_t结构的内存区域。 |
| 大小结构 | 指定perfstat_disk_t结构的大小:"sizeof(perfstat_disk_t) |
| 期望数 (desired_number) | 指定要复制到userbuff 的perfstat_disk_t结构的个数。 |
返回值
除非该函数用于检索可用结构的数量,否则在成功完成后会返回已填充结构的数量。 如果不成功,则返回值为-1并设置errno全局变量。
错误代码
如果以下情况之一为真,则perfstat_disk子程序不会成功运行:
| 项 | 描述 |
|---|---|
| EINVAL | 其中一个参数无效。 |
| EFAULT | 内存不足。 |
| ENOMEM | 字符串缺省长度太短。 |
| ENOMSG | 无法访问字典。 |
文件
libperfstat.h文件定义了标准宏、数据类型和子程序。