ENV_GET_SYSTEM_RESOURCES 表函数 - 返回系统信息

ENV_GET_SYSTEM_RESOURCES 表函数返回与系统上成员相关的操作系统、CPU、内存和其他信息。

活动数据库可以驻留在系统上的一个或多个成员上。 此表函数仅从发出该命令的数据库处于活动状态的成员返回数据。

注: ENV_GET_SYSTEM_RESOURCES 表函数将替换 ENV_GET_SYS_RESOURCES 表函数和关联的 ENV_SYS_RESOURCES 管理视图。

ENV_GET_SYSTEM_RESOURCES 表函数返回一行中的所有数据,其中每个成员有多列,而不是每个成员有多行。 此外, ENV_GET_SYS_RESOURCES 表函数为 DBPARTITIONNUM 列返回的数据由 ENV_GET_SYSTEM_RESOURCES 表函数在 MEMBER 列中返回。

模式为 SYSPROC。

权限

需要下列其中一个权限:
  • 对表函数的 EXECUTE 特权
  • DATAACCESS 权限
  • DBADM 权限
  • SQLADM 权限

缺省 PUBLIC 特权

返回的信息

表 1. 针对 ENV_GET_SYSTEM_RESOURCES 返回的信息
列名 数据类型 描述
MEMBER SMALLINT member -“数据库成员”监视元素
os_name VARCHAR(256) os_name -“操作系统名称”监视元素
HOST_NAME VARCHAR(255) host_name -“主机名”监视元素
os_version VARCHAR(256) os_version -“操作系统版本”监视元素
os_release VARCHAR(256) os_release -“操作系统发行版”监视元素
machine_identification VARCHAR(256) machine_identification -“主机硬件标识”监视元素
os_level VARCHAR(256) os_level -“操作系统级别”监视元素
CPU_TOTAL BIGINT cpu_total -“CPU 数”监视元素
CPU_ONLINE BIGINT cpu_online -“联机 CPU 数”监视元素
CPU_CONFIGURED BIGINT cpu_configured -“已配置的 CPU 数”监视元素
CPU_SPEED BIGINT cpu_speed -“CPU 时钟速度”监视元素
CPU_TIMEBASE BIGINT cpu_timebase -“时基寄存器递增频率”监视元素
CPU_HMT_DEGREE BIGINT cpu_hmt_degree -“逻辑 CPU 数”监视元素
CPU_CORES_PER_SOCKET BIGINT cpu_cores_per_socket -“每个套接字的 CPU 核心数”监视元素
MEMORY_TOTAL BIGINT memory_total -“总物理内存”监视元素
MEMORY_FREE BIGINT memory_free -“可用物理内存量”监视元素
MEMORY_SWAP_TOTAL BIGINT memory_swap_total -“总交换空间”监视元素
MEMORY_SWAP_FREE BIGINT memory_swap_free -“总可用交换空间”监视元素
VIRTUAL_MEM_TOTAL BIGINT virtual_mem_total -“总虚拟内存”监视元素
VIRTUAL_MEM_RESERVED BIGINT virtual_mem_reserved -“保留虚拟内存”监视元素
VIRTUAL_MEM_FREE BIGINT virtual_mem_free -“可用虚拟内存”监视元素
CPU_LOAD_SHORT cpu_load_short -“处理器负载(短时间窗)”监视元素
CPU_LOAD_MEDIUM cpu_load_medium -“处理器负载(中时间窗)”监视元素
CPU_LOAD_LONG cpu_load_long -“处理器负载(长时间窗)”监视元素
CPU_USAGE_TOTAL SMALLINT cpu_usage_total -“处理器使用情况”监视元素
CPU_USER1 BIGINT cpu_user -“非内核处理时间”监视元素
CPU_IDLE1 BIGINT cpu_idle -“处理器空闲时间”监视元素
CPU_IOWAIT1 BIGINT cpu_iowait -“IO 等待时间”监视元素
CPU_SYSTEM1 BIGINT cpu_system -“内核时间”监视元素
SWAP_PAGE_SIZE BIGINT swap_page_size -“交换页大小”监视元素
SWAP_PAGES_IN BIGINT swap_pages_in -“从磁盘换入的页数”监视元素
SWAP_PAGES_OUT BIGINT swap_pages_out -“换出至磁盘的页数”监视元素
os_full_version VARCHAR(256) os_full_version -“操作系统完全版本”监视元素
os_kernel_version VARCHAR(256) os_kernel_version -“操作系统内核标识”监视元素
os_arch_type VARCHAR(256) os_arch_type -“操作系统体系结构类型”监视元素
注:
1
这些度量已在系统上的所有逻辑处理器中聚集。
在 AIX® 操作系统上,度量值适用于正在运行数据库服务器的工作负载分区 (WPAR) 和逻辑分区 (LPAR)。

使用说明

  • 在虚拟化环境 (例如 VMWare ESX) 中,数据库系统可能无法确定 CPU 拓扑,例如 CPU_HMT_DEGREE 或 CPU_CORES_PER_SOCKET。 发生此情况的原因是系统管理程序提供给虚拟化操作系统的信息有限。 在此类情况下, CPU_CORES_PER_SOCKET 和 CPU_HMT_DEGREE 将具有值 1。
  • 要返回准确的结果, ENV_GET_SYSTEM_RESOURCES 表函数在 AIX, HP 和 Windows 操作系统上需要超过 1 秒。

示例

示例 1: 获取三人 Db2® pureScale® 设置中每个成员的操作系统信息:

select MEMBER, varchar(HOST_NAME,12) as HOST_NAME, varchar(OS_NAME,8) as OS_NAME, 
	varchar(OS_VERSION,8) as OS_VERSION, varchar(OS_RELEASE,8) 
	as OS_RELEASE from table(SYSPROC.ENV_GET_SYSTEM_RESOURCES()) order by MEMBER

样本输出如下所示:

MEMBER HOST_NAME    OS_NAME  OS_VERSION OS_RELEASE
------ ------------ -------- ---------- ----------
     0 hotel75      Linux    2          6         
     1 hotel78      Linux    2          6         
     2 hotel90      Linux    2          6         

  3 record(s) selected.

示例 2: 获取 Db2 Enterprise Server Edition 系统上托管此数据库的系统的内存信息:

select varchar(HOST_NAME,12) as HOST_NAME, MEMORY_TOTAL, MEMORY_FREE, 
   MEMORY_SWAP_TOTAL, MEMORY_SWAP_FREE, VIRTUAL_MEM_TOTAL, VIRTUAL_MEM_FREE 
   from table(SYSPROC.ENV_GET_SYSTEM_RESOURCES())

样本输出如下所示。 由于空间约束,输出在第二行上继续。

HOST_NAME    MEMORY_TOTAL         MEMORY_FREE          MEMORY_SWAP_TOTAL    ...
------------ -------------------- -------------------- -------------------- ... 
hotel75                     32189                 4370                 8198 ...

1 record(s) selected
... MEMORY_SWAP_FREE     VIRTUAL_MEM_TOTAL    VIRTUAL_MEM_FREE      
... -------------------- -------------------- --------------------  
...                 7316                40387                11686  

示例 3: 在四个成员分区数据库环境中,查找托管数据库的所有系统的装入时间。

select MEMBER, varchar(HOST_NAME,12) as HOST_NAME, 
   CPU_LOAD_SHORT, CPU_LOAD_MEDIUM, CPU_LOAD_LONG 
	 from table(SYSPROC.ENV_GET_SYSTEM_RESOURCES()) order by MEMBER

样本输出如下所示:

MEMBER HOST_NAME CPU_LOAD_SHORT          CPU_LOAD_MEDIUM         CPU_LOAD_LONG           
------ --------- ----------------------- ----------------------  ------------------------
     0 hotel75   +5.21000000000000E+000  +5.08000000000000E+000  +4.67000000000000E+000
     1 hotel78   +1.33000000000000E+000  +2.18000000000000E+000  +3.66000000000000E+000
     2 hotel90   +9.02000000000000E+000  +9.08000000000000E+000  +9.47000000000000E+000
     3 hotel32   +1.09000000000000E+000  +1.38000000000000E+000  +1.27000000000000E+000

  4 record(s) selected.
示例 4:
select MEMBER, varchar(HOST_NAME,12) as HOST_NAME, CPU_TOTAL, 
   MEMORY_TOTAL, CPU_LOAD_SHORT
   from table(SYSPROC.ENV_GET_SYSTEM_RESOURCES()) 
   order by MEMBER
样本输出如下所示:
MEMBER HOST_NAME          CPU_TOTAL   MEMORY_TOTAL          CPU_LOAD_SHORT
-----  --------------     ---------   ------------ -----------------------
     0 coralpib23                24          81920  +1.23696899414062E+000
     1 coralpib23                24          81920  +1.23696899414062E+000
     2 coralpib23                24          81920  +1.23696899414062E+000
     3 coralpib23                24          81920  +1.23696899414062E+000

 4 record(s) selected.