教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

Greenplum 数据库最佳实践(4)

来源:网络收集 时间:2026-08-30
导读: 第二章系统配置 本节描述了Greenplum数据库集群关于主机配置的需求和最佳实践。 ? 首选操作系统 红帽企业级Linux(RHEL)是首选操作系统。应使用最新支持的主版本,目前是 RHEL 6。 ? 文件系统 Greenplum数据库的数

第二章系统配置

本节描述了Greenplum数据库集群关于主机配置的需求和最佳实践。

? 首选操作系统

红帽企业级Linux(RHEL)是首选操作系统。应使用最新支持的主版本,目前是 RHEL 6。

? 文件系统

Greenplum数据库的数据目录推荐使用 XFS 文件系统。使用以下选项挂载 XFS: rw,noatime,inode64,allocsize=16m

? 端口配置

ip_local_port_range 的设置不要和 Greenplum 数据库的端口范围有冲突,例如: net.ipv4.ip_local_port_range = 3000

65535PORT_BASE=2000MIRROR_PORT_BASE=2100REPLICATION_PORT_BASE=2200MIRROR_REPLICATION_PORT_BASE=2300

? I/O配置

包含数据目录的设备的预读大小应设为 16384. /sbin/blockdev --getra /dev/sdb16384

包含数据目录的设备的 I/O 调度算法设置为 deadline。

# cat /sys/block/sdb/queue/schedulernoop anticipatory [deadline] cfq 通过 /etc/security/limits.conf 增大操作系统文件数和进程数。

* soft nofile 65536* hard nofile 65536* soft nproc 131072* hard nproc 131072 启用core文件转储,并保存到已知位置。确保limits.conf中允许的core转储文件。 kernel.core_pattern = /var/core/core.%h.%t# grep core /etc/security/limits.conf* soft core unlimited

? 操作系统内存配置

Linux sysctl 的 vm.overcommit_memory 和 vm.overcommit_ratio 变量会影响操作系统对内存分配的管理。这些变量应该设置如下:

?

vm.overcommit_memory控制操作系统使用什么方法确定分配给进程的内存总数。对于Greenplum数据库,唯一建议值是2.

? vm.overcommit_ratio 控制分配给应用程序进程的内存百分比。建议使用缺省值50. 不要启用操作系统的大内存页。 详见内存和负载管理。(后续章节)

? 共享内存设置

Greenplum 数据库中同一数据库实例的不同 postgres 进程间通讯使用共享内存。使用 sysctl 配置如下共享内存参数,且不建议修改:

kernel.shmmax = 500000000kernel.shmmni = 4096kernel.shmall = 4000000000

? 验证操作系统

使用 gpcheck 验证操作系统配置。参考《Greenplum数据库工具指南》中的 gpcheck。

? 设置一个主机上段数据库个数

确定每个段主机上段数据库的个数对整体性能有着巨大影响。这些段数据库之间共享主机的 CPU 核、内存、网卡等,且和主机上的所有进程共享这些资源。过高地估计每个服务器上运行的段数据库个数,通常是达不到最优性能的常见原因之一。 以下因素确定了一个主机上可以运行多少个段数据库:

? ? ? ? ?

CPU 核的个数 物理内存容量 网卡个数及速度 存储空间

主段数据库和镜像共存

? ?

主机是否运行 ETL 进程

主机上运行的非 Greenplum 进程

? 段服务器内存配置

服务器配置参数 gp_vmem_protect_limit 控制了每个段数据库为所有运行的查询分配的内存总量。如果查询需要的内存超过此值,则会失败。使用下面公式确定合适的值: (swap + (RAM * vm.overcommit_ratio)) * .9 / number_of_Segments_per_server 例如,具有下面配置的段服务器:

? ? ? ?

8GB 交换空间 128GB 内存

vm.overcommit_ratio = 50 8 个段数据库

则设置gp_vmem_protect_limit为 8GB: (8 + (128 * .5)) * .9 / 8 = 8 GB 参见 内存和负载管理。(后续章节)

? SQL语句内存配置

服务器配置参数 gp_statement_mem 控制段数据库上单个查询可以使用的内存总量。如果语句需要更多内存,则会溢出数据到磁盘。用下面公式确定合适的值: (gp_vmem_protect_limit * .9) / max_expected_concurrent_queries

例如,如果并发度为40, gp_vmeme_protect_limit为8GB,则 gp_statement_mem 为: (8192MB * .9) / 40 = 184MB

每个查询最多可以使用 184MB 内存,之后将溢出到磁盘。

若想安全的增大 gp_statement_mem,要么增大 gp_vmem_protect_limit,要么降低并发。要增大gp_vmem_protect_limit,必须增加物理内存和/或交换空间,或者降低单个主机上运行的段数据库个数。

请注意,为集群添加更多的段数据库实例并不能解决内存不足的问题,除非引入更多新主机来降低了单个主机上运行的段数据库的个数。

了解什么是溢出文件。了解gp_workfile_limit_files_per_query 参数,其控制了单个查询最多可以创建多少个溢出文件。了解gp_workfile_limit_per_Segment。

有关使用资源队列管理内存的更多信息,请参考 内存和负载管理。(后续章节)

? 溢出文件配置

如果为SQL查询分配的内存不足,Greenplum数据库会创建溢出文件(也叫工作文件)。在默认情况下,一个SQL查询最多可以创建 100000 个溢出文件,这足以满足大多数查询。 参数gp_workfile_limit_files_per_query 决定了一个查询最多可以创建多少个溢出文件。0 意味着没有限制。限制溢出文件数据可以防止失控查询破坏整个系统。

如果分配内存不足或者出现数据倾斜,则一个SQL查询可能产生大量溢出文件。如果超过溢出文件上限,Greenplum数据库报告如下错误: ERROR: number of workfiles per query limit exceeded

在尝试增大gp_workfile_limit_files_per_query前,先尝试通过修改 SQL、数据分布策略或者内存配置以降低溢出文件个数。

gp_toolkit模式包括一些视图,通过这些视图可以看到所有使用溢出文件的查询的信息。这些信息有助于故障排除和调优查询:

?

gp_workfile_entries视图的每一行表示一个正在使用溢出文件的操作符的信息。关于操作符,参考 如何理解查询计划解释。(后续章节)

? gp_workfile_usage_per_query视图的每一行表示一个正在使用溢出文件的 SQL 查询的信息。

? gp_workfile_usage_per_Segment视图的每一行对应一个段数据库,包含了该段上使用的溢出文件占用的磁盘空间总量。

关于这些视图的字段涵义,请参考《Greenplum数据库参考指南》。

参数 gp_workfile_compress_algorithm指定溢出文件的压缩算法:none 或者 zlib。

第三章数据库模式设计

GPDB 是一个基于大规模并行处理(MPP)和无共享架构的分析型数据库。这种数据库的数据模式与高度规范化的事务性SMP数据库显著不同。使用非规范化数据库模式,例如具有大事实表和小维度表的星型或者雪花模式,处理MPP分析型业务时,Greenplum数据库表现优异。

? 数据类型

类型一致性

关联列使用相同的数据类型。如果不同表中的关联列数据类型不同,GPDB 必须动态的进行类型转换以进行比较。考虑到这一点,你可能需要增大数据类型的大小,以便关联操作更高效。 类型最小化

建议选择最高效的类型存储数据,这可以提高数据库的有效容量及查询执行性能。 建议使用 TEXT 或者 VARCHAR 而不是CHAR。不同的字符类型间没有明显的性能差别,但是 TEXT 或者 VARCHAR 可以降低空间使用量。

建议使用满足需求的最小数值类型。如果 INT 或 SAMLLINT 够用,那么选择 BIGINT 会浪费空间。

? 存储模型

在 Greenplum 数据库中,创建表时可以选择不同的存储类型。需要清楚什么时候该使用堆存储、什么时候使用追加优化 …… 此处隐藏:2326字,全部文档内容请下载后查看。喜欢就下载吧 ……

Greenplum 数据库最佳实践(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/518721.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)