特定于组件的接口
特定于组件的接口报告与系统上的各个组件 (例如处理器,磁盘,网络接口或调页空间) 相关的度量。
以下所有AIX®接口都使用perfstat_subsystem 命名规则,并使用共同的签名:
除 perfstat_memory_page 和 perfstat_hfistat_window 外,所有组件接口使用的公共签名如下所示:
项 | 描述信息 |
---|---|
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 | 计算内核线程利用率度量 |
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);
所有接口的参数用法如下所示:
如果出现错误,返回值为-1。 否则,将返回复制的结构数。 字段名称设置为 NULL 或下一个可用结构的名称。
项 | 描述信息 |
---|---|
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 类型的结构数。 |
此方案的例外情况是,当 name = NULL, userbuff = NULL 和 desired_number=0时,将返回可用的结构总数。
要检索给定类型的所有结构,请查找结构数并分配保存这些结构所需的内存。 然后,必须调用相应的 API 以在一次调用中检索所有结构。 另一种方法是分配一组固定的结构,并重复调用 API 以获取下一组结构,每次传递上一次调用返回的名称。 启动名称设置为 "" 或 FIRST_SUBSYSTEM的进程,然后重复该进程。
最大限度减少 API 调用次数和系统调用次数会导致更高效的代码,因此首选双调用方法。 以下部分中显示的一些示例说明了使用双调用方法的 API 用法。 双呼叫方法会导致大量内存分配,有时会使用多呼叫方法,并在以下示例中进行说明。
以下部分提供了返回的数据类型以及用于每个接口的代码的示例。