特定于组件的接口

特定于组件的接口报告与系统上的各个组件 (例如处理器,磁盘,网络接口或调页空间) 相关的度量。

以下所有AIX®接口都使用perfstat_subsystem 命名规则,并使用共同的签名:
描述信息
perfstat_cpu 检索个别处理器使用情况度量
注: 当由在 WPAR 中运行的应用程序调用时,此接口将返回全局值。
perfstat_disk 检索个别磁盘使用情况度量
注: 当在 WPAR 中运行的应用程序调用此接口时,此接口不会返回任何数据
perfstat_diskpath 检索个别磁盘路径度量
注: 当在 WPAR 中运行的应用程序调用此接口时,此接口不会返回任何数据
perfstat_diskadapter 检索个别磁盘适配器度量
注: 当在 WPAR 中运行的应用程序调用此接口时,此接口不会返回任何数据。
perfstat_netinterface 检索个别网络接口度量值
注: 此接口在由在 WPAR 中运行的应用程序调用时返回特定于 WPAR 的数据。
perfstat_protocol 检索与单个网络协议相关的度量
注: 此接口在由在 WPAR 中运行的应用程序调用时返回特定于 WPAR 的数据。
perfstat_netbuffer 检索个别网络缓冲区分配指标
注: 此接口在由在 WPAR 中运行的应用程序调用时返回特定于 WPAR 的数据。
perfstat_pagingspace 检索个别调页空间度量值
注: 当在 WPAR 中运行的应用程序调用此接口时,此接口不会返回任何数据。
perfstat_memory_page 检索多个页面大小使用情况度量
注: 此接口在由 WPAR 中运行的应用程序调用时返回全局值。
perfstat_tape 检索个别磁带使用情况度量
注: 当在 WPAR 中运行的应用程序调用此接口时,此接口不会返回任何数据。
perfstat_logicalvolume 检索个别逻辑卷使用情况度量
注: 当 WPAR 中运行的应用程序调用此接口时,此接口不会返回任何数据。
perfstat_volumegroup 检索个别卷组使用情况度量
注: 当在 WPAR 中运行的应用程序调用此接口时,此接口不会返回任何数据。
perfstat_hfistat 检索单个主机光纤接口 (HFI) 统计信息。
perfstat_hfistat_window 检索基于单个窗口的 HFI 统计信息。
perfstat_cpu_util 计算 CPU 利用率
perfstat_process 检索进程利用率度量
perfstat_process_util 计算流程利用率指标
perfstat_thread 检索内核线程利用率度量
perfstat_thread_util 计算内核线程利用率度量
除 perfstat_memory_page 和 perfstat_hfistat_window 外,所有组件接口使用的公共签名如下所示:
int perfstat_subsystem(perfstat_id *name,
                       perfstat_subsystem_t * userbuff,
                       int sizeof_struct,
                       int desired_number);
perfstat_memory_page 使用以下特征符:
int perfstat_memory_page(perfstat_psize_t *psize ,
			  perfstat_subsystem_t * userbuff,
			  int sizeof_struct,
			  int desired_number);
perfstat_hfistat_window 使用以下特征符:
int perfstat_hfistat_window(perfstat_id_window_t *name,
			      perfstat_hfistat_window_t *userbuff,
			      int sizeof_struct,
			      int desired_number);
所有接口的参数用法如下所示:
描述信息
perfstat_id_t * 名称 输入第一个组件 (例如 hdisk2 for perfstat_disk ()) 的名称以获取统计信息。 使用包含 char * 字段的结构,而不是直接将 char * 自变量传递给函数,以避免分配错误,并防止用户提供常量字符串作为参数。 要从子系统的第一个组件开始,请将 name 参数的 char * 字段设置为 "" (空字符串)。 您可以使用 libperfstat.h 文件中定义的宏,例如 FIRST_SUBSYSTEM (例如 FIRST_CPU)。
perfstat_id_window_t * 名称 "name-> name" 字段中输入主机光纤网接口名称 (例如, hfi0 , hfi1 或 FIRST_HFI) ,并在 "name-> window wid" 字段中输入 HFI 窗口编号。
perfstat_subsystem_t * userbuff 指定一个指向内存区域的指针,该内存区域有足够的空间用于返回的结构。
整数大小结构 将参数设置为 sizeof (perfstat_subsystem_t)
整数期望数 (int desired_number) 指定要在 userbuff 中返回的 perfstat_subsystem_t 类型的结构数。
如果出现错误,返回值为-1。 否则,将返回复制的结构数。 字段名称设置为 NULL 或下一个可用结构的名称。

此方案的例外情况是,当 name = NULLuserbuff = NULLdesired_number=0时,将返回可用的结构总数。

要检索给定类型的所有结构,请查找结构数并分配保存这些结构所需的内存。 然后,必须调用相应的 API 以在一次调用中检索所有结构。 另一种方法是分配一组固定的结构,并重复调用 API 以获取下一组结构,每次传递上一次调用返回的名称。 启动名称设置为 ""FIRST_SUBSYSTEM的进程,然后重复该进程。

最大限度减少 API 调用次数和系统调用次数会导致更高效的代码,因此首选双调用方法。 以下部分中显示的一些示例说明了使用双调用方法的 API 用法。 双呼叫方法会导致大量内存分配,有时会使用多呼叫方法,并在以下示例中进行说明。

以下部分提供了返回的数据类型以及用于每个接口的代码的示例。