返回首页

gbase数据、南大通用产品文档:GBase8a:发生告警事件的对象名称。如为cpu 时,说

更新日期:2024年09月11日

明cpu 发生了告警。

STATEMENT_COMPLEX_RUNTIME 视图显示当前用户在数据库主节点上正在执行的
作业的负载管理记录。
名称
类型
描述
datid
oid
连接后端的数据OID。
dbname
name
连接后端的数据库名称。
schemaname
text
模式的名称。
nodename
text
数据库进程名称。
username
name
连接到后端的用户名。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
1032
名称
类型
描述
application_name
text
连接到后端的应用名。
client_addr
inet
连接到后端的客户端的IP 地址。如果此字段
是null,
它表明通过服务器机器上UNIX 套接
字连接客户端或者这是内部进程,如autovac
uum。
client_hostname
text
客户端的主机名,这个字段是通过client_add
r 的反向DNS 查找得到。这个字段只有在启
动log_hostname 且使用IP 连接时才非空。
client_port
integer
客户端用于与后端通讯的TCP 端口号,如果
使用Unix 套接字,则为-1。
query_band
text
用于标示作业类型,
可通过GUC 参数query_
band 进行设置,默认为空字符串。
pid
bigint
后端线程ID。
block_time
bigint
语句执行前的阻塞时间,单位ms。
start_time
timestamp wit
h time zone
语句执行的开始时间。
duration
bigint
语句已经执行的时间,单位ms。
estimate_total_time
bigint
语句执行预估总时间,单位ms。
estimate_left_time
bigint
语句执行预估剩余时间,单位ms。
enqueue
text
工作负载管理资源状态。
resource_pool
name
用户使用的资源池。
control_group
text
语句所使用的Cgroup。
estimate_memory
integer
语句预估使用内存,单位MB。
min_peak_memory
integer
语句在数据库节点上的最小内存峰值,单位
MB。
max_peak_memory
integer
语句在数据库节点上的最大内存峰值,单位

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
1033
名称
类型
描述
MB。
average_peak_memory
integer
语句执行过程中的内存使用平均值,单位M
B。
memory_skew_percent
integer
语句在数据库节点间的内存使用倾斜率。
spill_info
text
语句在数据库节点上的下盘信息:
None:数据库节点均未下盘。
All:数据库节点均下盘。
[a:b]:
数量为b 个数据库节点中有a 个数据库
节点下盘。
min_spill_size
integer
若发生下盘,数据库节点上下盘的最小数据
量,单位MB,默认为0。
max_spill_size
integer
若发生下盘,数据库节点上下盘的最大数据
量,单位MB,默认为0。
average_spill_size
integer
若发生下盘,数据库节点上下盘的平均数据
量,单位MB,默认为0。
spill_skew_percent
integer
若发生下盘,数据库节点间下盘倾斜率。
min_dn_time
bigint
语句在数据库节点上的最小执行时间,
单位m
s。
max_dn_time
bigint
语句在数据库节点上的最大执行时间,
单位m
s。
average_dn_time
bigint
语句在数据库节点上的平均执行时间,
单位m
s。
dntime_skew_percent
integer
语句在数据库节点的执行时间倾斜率。
min_cpu_time
bigint
语句在数据库节点上的最小CPU 时间,单位
ms。
max_cpu_time
bigint
语句在数据库节点上的最大CPU 时间,单位
ms。
total_cpu_time
bigint
语句在数据库节点上的CPU 总时间,单位m

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
1034
名称
类型
描述
s。
cpu_skew_percent
integer
语句在数据库节点间的CPU 时间倾斜率。
min_peak_iops
integer
语句在数据库节点上的每秒最小IO 峰值(列
存单位是次/s,行存单位是万次/s)。
max_peak_iops
integer
语句在数据库节点上的每秒最大IO 峰值(列
存单位是次/s,行存单位是万次/s)。
average_peak_iops
integer
语句在数据库节点上的每秒平均IO 峰值(列
存单位是次/s,行存单位是万次/s)。
iops_skew_percent
integer
语句在数据库节点间的IO 倾斜率。
warning
text
主要显示如下几类告警信息:
Spill file size large than 256MB。
Broadcast size large than 100MB。
Early spill。
Spill times is greater than 3。
Spill on memory adaptive。
Hash table conflict。
queryid
bigint
语句执行使用的内部query id。
query
text
正在执行的语句。
query_plan
text
语句的执行计划。
node_group
text
语句所属用户对应的逻辑GBase 8c。
top_cpu_dn
text
cpu 使用量topN 信息。
top_mem_dn
text
内存使用量topN 信息。

数据库服务器进程都被称为虚拟处理器,因为它们作用的方式类似于计算机中 CPU 作用
的方式。如同 CPU 运行多个操作系统进程为多个用户提供服务一样,数据库服务器虚拟
处理器运行多个线程来为多个 SQL 客户机应用程序服务。
虚拟处理器是操作系统调度处理的进程。
下图说明了客户机应用程序与虚拟处理器之间的关系。少量的虚拟处理器可以为大量的客
户机应用程序或查询提供服务。
图: 虚拟处理器



线程
线程是虚拟处理器的一个任务,如同虚拟处理器是 CPU 的一个任务一样。虚拟处理器是
操作系统调度在 CPU 上执行的任务;数据库服务器线程是虚拟处理器调度进行内部处理
的任务。线程有时称为轻量级进程,因为它们类似进程,但是对操作系统的要求更少。
数据库服务器虚拟处理器是多线程的,因为它们运行多个并发线程。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 83 -
线程的性质如下所示。
操作系统
操作
UNIX™
线程是虚拟处理器为处理而内部调度的任务。
重要: 在这些主题中,对线程的所有引用都是指数据库服务器创建、调度和删除的线程。
虚拟处理器代表 SQL 客户机应用程序运行线程(会话线程),并运行线程以满足内部需
求(内部线程)。在大多数情况下,对于客户机应用程序的每个连接,数据库服务器都运
行一个会话线程。另外,数据库服务器运行内部线程以完成数据库 I/O、日志记录 I/O、页
面清除和管理任务。有关数据库服务器为单个客户机运行多个会话线程的情况,请参阅并
行处理。
用户线程是为来自客户机应用程序的请求提供服务的数据库服务器线程。用户线程包括会
话线程(称为 sqlexec 线程),这些线程是数据库服务器为了向客户机应用程序提供服务
而运行的主线程。
用户线程还包括为来自 onmode 实用程序的请求提供服务的线程、用于恢复的线程、B 型
树扫描程序线程以及页清除程序线程。
要显示活动用户线程,请使用 onstat -u。有关监视会话和线程的更多信息,请参阅《GBase
8s 性能指南》。

虚拟处理器的类型
每一类虚拟处理器都专用于处理某些类型的线程。
下表显示虚拟处理器的类以及它们执行的处理的类型。
您配置的每个类的虚拟处理器数量取决于物理处理器 (CPU)、硬件内存和使用中数据库应
用程序的可用性。
表 1. 虚拟处理器类
虚拟处理器类 分类
用途
ADM
管理
执行管理功能。
ADT
审计
执行审计功能。
AIO
磁盘 I/O
执行非日志记录磁盘 I/O。如果使用了 KAIO,那么
AIO 虚拟处理器将对格式化的磁盘空间执行 I/O。
BTS
Basic Text Search
运行 Basic Text Search 索引操作和查询。
CPU
中央处理
运行所有会话线程以及一些系统线程。
运行可用时的
内核异步 I/O (KAIO) 的线程。 可以根据配置运行单
个轮询线程。
CSM
通信支持模块
执行通信支持服务操作。
dwavp
数据仓储
在连接到 GBase 8s Warehouse Accelerator 的数据库
服务器上,
对 GBase 8s Warehouse Accelerator 运行管
理功能和过程。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 84 -
虚拟处理器类 分类
用途
加密
加密
调用加密或解密功能时被数据库服务器使用。
IDSXMLVP
XML 发布
运行 XML 发布函数。
Java™ VP
(JVP)
Java UDR
运行 Java UDR。 包含 Java 虚拟机 (JVM)。
LIO
磁盘 I/O
如果逻辑日志文件
(内部类)
位于格式化的磁盘空间,
那么写入这些逻辑日志文件。
MQ
MQ 消息传递
执行 MQ 消息传递事务。
MSC
其他
为需要很大堆栈的系统调用的请求提供服务。
OPT (UNIX™) Optical
执行对光盘的 I/O。
PIO
磁盘 I/O
如果物理日志文件
(内部类)
位于格式化的磁盘空间,
那么写入该物理日志文件。
SHM
网络
执行共享内存通信。
SOC
网络
使用套接字执行网络通信。
TLI
网络
使用传输层接口 (TLI) 执行网络通信。
WFSVP
Web 要素服务
运行 Web 要素服务例程。
类名
用户定义的
以线程安全方式运行用户定义的例程,以便在例程失
败时数据库服务器不受影响。 用 VPCLASS 配置参
数指定。 必须指定类名。
下图说明了数据库服务器的主要组件以及可扩展性。
图: 数据库服务器


GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 85 -


虚拟处理器的优势
与为单台客户机应用程序提供服务的数据库服务器进程相比,数据库服务器虚拟处理器的
动态多线程性质将提供下列优势:

虚拟处理器可以共享处理。

虚拟处理器将保存内存和资源。

虚拟处理器可以执行并行处理。

当数据库服务器正在运行时,您可以启动其他的虚拟处理器并终止活动的 CPU 虚
拟处理器。

您可以将虚拟处理器绑定到 CPU。
以下主题将描述这些优势。

共享处理
同一类的虚拟处理器具有相同的代码并且共享对内存中的数据和处理队列的访问。类中任
何的虚拟处理器都可以运行任何属于该类的线程。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 86 -
通常,数据库服务器会尝试将线程保持在同一个虚拟处理器上运行,因为将它移动到不同
的虚拟处理器可能需要来自处理器内存的数据在总线上传送。然而,当线程正等待运行时,
数据库服务器可以将线程迁移至另一个虚拟处理器,因为平衡处理负载的好处要大于在传
送数据时花费的开销。
一类虚拟处理器中的共享处理是自动发生的并且对数据库用户是透明的。

节省内存和资源
相较于一个客户机进程对应一个服务器进程的体系结构,数据库服务器能够用少量的服务
器进程处理大量客户机。对于每台客户机,数据库服务器是通过运行线程而不是进程来实
现这点的。
因为线程共享分配给虚拟处理器的资源,所以多线程允许对操作系统资源进行更有效的使
用。虚拟处理器运行的所有线程对虚拟处理器内存、通信端口和文件具有相同的访问权。
虚拟处理器会按线程协调对资源的访问。但是,每个单独的进程都有一组不同的资源,并
且在多个进程需要访问相同资源时,操作系统必须对访问进行协调。
通常,虚拟处理器从一个线程切换至另一个线程比操作系统从一个进程切换至另一个进程
更快。当操作系统在两个进程间切换时,它必须使一个进程停止在处理器上运行,保存其
当前的处理状态(或上下文),然后启动另一个进程。两个进程都必须进入然后退出操作
系统内核,并且可能需要替换部分物理内存的内容。但是,线程会共享相同的虚拟内存和
文件描述符。在虚拟处理器从一个线程切换到另一个线程时,就相当于从一个执行路径切
换到另一个执行路径。虚拟处理器是一个进程,该进程在 CPU 上持续运行而不会中断。
有关虚拟处理器如何从一个线程切换到另一个线程的描述,请参阅上下文切换。

并行处理
在以下情况中,CPU 类的虚拟处理器可以为单台客户机以并行方式运行多个会话线程:

索引构建

排序

恢复

扫描

连接

聚集

分组

用户定义的例程 (UDR) 执行
有关并行 UDR 执行的更多信息,请参阅《GBase 8s 用户定义的例程与数据类型开发者指
南》。
下图说明了并行处理。当客户机启动索引构建、排序或逻辑恢复时,数据库服务器将使用
尽可能多的计算机资源创建多个线程以并行处理任务。当一个线程正在等待 I/O,另一个
线程可能正在工作。
图: 并行处理

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 87 -



在联机方式下添加和删除虚拟处理器
可以添加虚拟处理器以满足数据库服务器运行时对服务的日益增长的需求。例如,如果类
的虚拟处理器变成了计算绑定或 I/O 绑定
(意思是可以处理 CPU 工作或 I/O 请求的虚拟
处理器的当前数量满足不了处理 CPU 工作或 I/O 请求数日益累积的需求),那么您可以
为该类启动额外的虚拟处理器来进一步分布处理装入。
可以在数据库服务器运行时为这些类中的任何一个添加虚拟处理器。有关更多信息,请参
阅在联机方式下添加虚拟处理器。
当数据库服务器正在运行时,您可以删除 CPU 的虚拟处理器或用户定义类。有关更多信
息,请参阅设置虚拟处理器配置参数。

将虚拟处理器绑定到 CPU
可使用某些多处理器系统将进程绑定到特定 CPU。此功能称为处理器专用。
在数据库服务器支持处理器专用的多处理器计算机上,您可以将 CPU 虚拟处理器绑定到
该计算机中特定的 CPU。当您将 CPU 虚拟处理器绑定到 CPU 时,虚拟处理器将互斥运
行在该 CPU 上。此操作将提高虚拟处理器的性能,因为它减少了操作系统必须在进程间
进行的切换量。将 CPU 虚拟处理器绑定到特定的 CPU 还可以使您隔离计算机上特定处
理器的数据库工作,以将剩余的处理器释放给其他的工作。仅 CPU 虚拟处理器可以绑定
到 CPU。
有关如何将 CPU 虚拟处理器指定到硬件处理器的信息,请参阅处理器亲缘关系。