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 实例通过 hostname 和 dbid (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 视图了解更多主机上内存分配汇总和使用信息.