segment_* 表

segment_* 表

The segment_* 包含 Greenplum 数据库 segment 实例的内存分配统计信息。 它跟踪每个特定 segment 实例上全部 postgres 进程的内存消费数量, 以及由当前资源管理方案(基于资源组或基于资源队列)设置的每个 segment 可用的剩余内存数量. 参见 Greenplum 数据库管理员指南 了解更多关于资源管理方案的详细信息.

一共有三张 segment 表, 每张表都具有相同的结构(列):

  • segment_now 是一个外部表, 其数据文件位于 $MASTER_DATA_DIRECTORY/gpperfmon/data. 在数据从 gpperfmon 数据采集代理程序获得以后,自动提交到 segment_history 表之前, 当前系统使用指标数据存储在 segment_now 表中。
  • segment_tail 是一个外部表, 其数据文件位于 $MASTER_DATA_DIRECTORY/gpperfmon/data. 它是一个内存分配信息的过渡表,当数据已经从 segment_now 中清除,但还没有提交到 segment_history 表中时,暂存在这里。 它通常仅包含数据几分钟时间。
  • segment_history 是一个常规表, 用于存储历史内存分配指标。 它已预先设置为按月分区。 分区会根据需要以两个月为增量自动添加。

每个特定 segment 实例通过 hostnamedbid (gp_segment_configuration 系统目录表中的 segment 唯一标识) 定义.

类型 说明
ctime

timestamp(0)

(without time zone)

该行的创建时间.
dbid int segment ID (gp_segment_configuration 中的 dbid).
hostname charvar(64) segment 主机名称.
dynamic_memory_used bigint 当前 segment 上分配给查询进程的动态内存数量(单位: 字节).
dynamic_memory_available bigint 在到达当前资源管理方案(基于资源组或基于资源队列)设置限制前,segment 上还可分配的动态内存数量(单位: 字节).

参见 memory_info 视图和 dynamic_memory_info 视图了解更多主机上内存分配汇总和使用信息.