更新时间:2024-04-30 GMT+08:00

PGXC_MEMORY_DEBUG_INFO

PGXC_MEMORY_DEBUG_INFO视图显示当前集群每个节点在执行作业时的内存报错信息,便于定位内存报错问题,当执行语句报错提示“memory is temporarily unavailable”时,通过该视图可查询到所有节点的内存报错信息,该报错信息跟日志中显示的内存报错信息相同。该视图8.3.0及以上集群版本支持。

该视图仅显示最近一次报错的集群信息,重复报错信息会进行覆盖,同一个query多次申请内存报错,信息不会进行更新。

表1 PGXC_MEMORY_DEBUG_INFO字段

名称

类型

描述

node_name

text

实例名称,包含CN和DN。

query_id

bigint

正在申请内存的查询ID。

memory_info

text

当前实例的内存使用情况,主要包含:

  • process_used_memory:GaussDB(DWS)进程所使用的内存大小。
  • max_dynamic_memory:最大动态内存。
  • dynamic_used_memory:已使用的动态内存。
  • dynamic_peak_memory:内存的动态峰值。
  • dynamic_used_shrctx:最大动态共享内存上下文。
  • dynamic_peak_shrctx:共享内存上下文的动态峰值。
  • shared_used_memory:已使用的共享内存。
  • cstore_used_memory:列存已使用的内存大小。
  • comm_used_memory:通信库已使用的内存大小。
  • comm_peak_memory:通信库的内存峰值。
  • other_used_memory:其他已使用的内存大小。
  • topsql_used_memory:topsql已使用内存大小
  • large_storage_memory:列存压缩和解压缩使用的内存大小。
  • os_totalmem:操作系统总内存大小。
  • os_freeemem:操作系统剩余内存大小。

summary

text

包含实例上作业消耗的总估算内存和消耗的总实际内存大小。

abnormal_query

text

使用内存异常的线程ID和queryid,包含两种情况:

  1. 当前使用内存最大的会话。
  2. 估算内存和实际使用内存差别最大的会话。

abnormal_memory

text

使用内存异常的内存块,包含共享内存ctx使用最大的和通用内存ctx使用最大的

top_thread

text

使用内存最多的三个线程信息:

context name:表示正在使用内存的内存块。

contextlevel:表示ctx的等级。

sessType:表示ctx顶层节点的类型。

totalsize[274,13,260]MB,表示当前内存ctx的总内存,已释放内存和使用内存大小,单位为MB。

create_time

timestamp with time zone

出现内存不足报错的时间点。