GreenPlum新建实例后需要做哪些基本优化操作

0    390    4

Tags:

👉 本文共约3466个字,系统预计阅读时间或需14分钟。

OS配置

推荐配置

内核参数

进程优先级、进程数

配置磁盘预读

在含有数据目录的设备上,blockdev预读尺寸应该被设置为16384。

加入/etc/rc.local文件中。

磁盘挂载参数

禁用透明大页

不建议对数据库工作负载使用 THP (Oracle、MySQL、PostgreSQL、MongoDB均建议关闭THP),因为THP在运行时动态分配内存,而运行时的内存分配会有延迟,对于数据库的管理来说并不友好,会导致数据库性能抖动,所以建议关闭THP。

参考:https://www.dbaup.com/pgshujukupeizhidaye.html

配置足够的swap

若是内存不足,发生自动切换,会报:“FTS: cannot establish libpq connection (content=0, dbid=11): could not fork new process for connection: Cannot allocate memory”或“FATAL: Out of memory. Failed on request of size 144 bytes. (context 'GPORCAmemory pool') ”或“ATAL: the database system is in recovery mode”,若没有swap内存配置,会发生OOM,特别严重时会导致segment自动故障切换。

参考:https://www.dbaup.com/linuxzhongdejiaohuanfenquswap.html

安装

segment数规划

参考:https://www.dbaup.com/greenplumxingnengyouhuaxilie.html#mei_tai_zhu_ji_shang_deSegment_shi_li_shu_liang

下表列出了segment实例对应内存和CPU需求

总segment个数(p+m)CPU核数内存GB
2416~32
2~46~824~32
4~68~1632~64
6~812~1648~64
8~1216~2464~84
12~1624~3264~128
3064250
50128500

我这边碰到的环境多半是,在1+1+3(1个master+1个standby+3个data节点)主机,standby配置低,其它节点都是128GB内存+32核CPU,在数据节点上创建的是4个primary+4个mirror=8个实例,监控了很久,感觉对资源还是有很大浪费的。所以,对于这类主机,我们可以在每个数据节点上创建16个实例(8个P+8个M),shared_buffers配置512MB就行。

pgbouncer连接池

参数配置

注意:standby master的值需要单独修改postgresql.conf文件

计算gp_vmem_protect_limit 的值:https://greenplum.org/calc/ ,其中,“Primary Segments Per Server”为所有的实例个数,包括p和m。该参数限制每个Instance上所有语句可以使⽤的内存总量的上限值(以MB为单位)。 如果查询导致超出此限制,则不会分配内存,查询将失败,配置合理可以有效避免OOM的发生。gp_vmem_protect_limit没有统计到共享内存,仍旧有操作系统OOM的风险,在计算时需要排除掉该部分内存的空间

注意: 该参数若配置过大,会导致发生OOM后,实例自动切换;若配置过小,则会导致查询报错OOM(ERROR: Canceling query because of high VMEM usage. Used: 29MB, available 1MB, red zone: 90MB (runaway_cleaner.c:202) 或 Vmem limit reached, failed to allocate或gpcc报错:Warning: Updates stalled due to heavy GPDB workload or segment failure (system, diskusage, alert))或DETAIL: Vmem limit reached, failed to allocate 12582912 bytes from tracker, which has 0 MB available 但并不会发生实例切换。

修改max_connections、shared_buffers等(需要重启库)

定时清理主库日志或只记录DDL语句日志

不需要重启库!!!

参考:https://www.dbaup.com/peizhicrontabdingshiqingligreenplumrizhiwenjian.html

其它参数调优(不需要重启库)

注意:

1、参数statement_mem在6.24.4版本中测试的有问题,不能配置该参数,否则会导致GP不能启动。但在6.25.1中测试又正常了。

2、参数work_mem在后期版本中可能会被废弃,不建议配置。WARNING "work_mem": setting is deprecated, and may be removed in a future release.

考虑将udp修改为tcp

1、需要根据实际情况测试,在有segment 200个的情况下,修改为tcp后,发现有的很简单的SQL会挂着不执行,修改为udp后正常。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复