Greenplum配置参数优化:5.10.2

Greenplum参数配置优化:

查询参数

gpconfig --show max_connections

修改参数配置命令

gpconfig-c <parameter name> -v <parameter value>

比如:gpconfig-c log_statement -v DDL

删除配置
gpconfig -r <parameter name>

work_mem

work_mem(,global,物理内存的2%-4%),segment用作sort,hash操作的内存大小
当PostgreSQL对大表进行排序时,数据库会按照此参数指定大小进行分片排序,将中间结果存放在临时文件中,这些中间结果的临时文件最终会再次合并排序,所以增加此参数可以减少临时文件个数进而提升排序效率。当然如果设置过大,会导致swap的发生,所以设置此参数时仍需谨慎。

查看现有配置值
gpconfig -s work_mem 

Values on all segments are consistent
GUC          : work_mem
Master  value: 32MB
Segment value: 32MB

修改配置
gpconfig -c work_mem  -v 128MB

另一种写法:SET work_mem TO ‘64MB‘

配置成功返回:
gpadmin-[INFO]:-completed successfully with parameters 

mainteance_work_mem(

global,CREATE INDEX, VACUUM等时用到,segment用于VACUUM,CREATE INDEX等操作的内存大小,缺省是16兆字节(16MB)。因为在一个数据库会话里, 任意时刻只有一个这样的操作可以执行,并且一个数据库安装通常不会有太多这样的工作并发执行, 把这个数值设置得比work_mem更大是安全的。 更大的设置可以改进清理和恢复数据库转储的速度。

查看现有配置值
gpconfig -s  maintenance_work_mem
GUC          : maintenance_work_mem
Master  value: 64MB
Segment value: 64MB

修改配置
gpconfig -c maintenance_work_mem  -v 256MB  

max_statement_mem

设置每个查询最大使用的内存量,该参数是防止statement_mem参数设置的内存过大导致的内存溢出.

查看现有配置值
gpconfig -s max_statement_mem

Values on all segments are consistent
GUC          : max_statement_mem
Master  value: 2000MB
Segment value: 2000MB

修改配置
gpconfig -c max_statement_mem  -v 2000MB

statement_mem

设置每个查询在segment主机中可用的内存,该参数设置的值不能超过max_statement_mem设置的值,如果配置了资源队列,则不能超过资源队列设置的值。

查看现有配置值
gpconfig -s statement_mem
Values on all segments are consistent
GUC          : statement_mem
Master  value: 125MB
Segment value: 125MB

修改配置
gpconfig -c statement_mem  -v 256MB

gp_vmem_protect_limit

控制了每个segment数据库为所有运行的查询分配的内存总量。如果查询需要的内存超过此值,则会失败。

查看现有配置值
gpconfig -s gp_vmem_protect_limit
Values on all segments are consistent
GUC          : gp_vmem_protect_limit
Master  value: 8192
Segment value: 8192

gp_workfile_limit_files_per_query

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

查看现有配置值
gpconfig -s gp_workfile_limit_files_per_query
Values on all segments are consistent
GUC          : gp_workfile_limit_files_per_query
Master  value: 100000
Segment value: 100000

gp_statement_mem

服务器配置参数 gp_statement_mem 控制段数据库上单个查询可以使用的内存总量。如果语句需要更多内存,则会溢出数据到磁盘。

effective_cache_size

(master节点,可以设为物理内存的85%)
这个参数告诉PostgreSQL的优化器有多少内存可以被用来缓存数据,以及帮助决定是否应该使用索引。这个数值越大,优化器使用索引的可能性也越大。因此这个数值应该设置成shared_buffers加上可用操作系统缓存两者的总量。通常这个数值会超过系统内存总量的50%以上。

查看现有配置值:
gpconfig -s effective_cache_size
Values on all segments are consistent
GUC          : effective_cache_size
Master  value: 512MB
Segment value: 512MB

修改配置
gpconfig -c effective_cache_size  -v 40960MB

gp_resqueue_priority_cpucores_per_segment

master和每个segment的可以使用的cpu个数,每个segment的分配线程数;

查看现有配置值
gpconfig -s gp_resqueue_priority_cpucores_per_segment
Values on all segments are consistent
GUC          : gp_resqueue_priority_cpucores_per_segment
Master  value: 4
Segment value: 4

gpconfig -s  checkpoint_segments  

修改配置
gpconfig -c gp_resqueue_priority_cpucores_per_segment  -v 8

max_connections

最大连接数,Segment建议设置成Master的5-10倍。
max_connections = 200 #(master、standby)
max_connections = 1200 #(segment)

查看现有配置值:
gpconfig -s max_connections

GUC          : max_connections
Master  value: 250
Segment value: 750

修改配置
gpconfig -c max_connections -v 1200 -m 300

max_prepared_transactions

这个参数只有在启动数据库时,才能被设置。它决定能够同时处于prepared状态的事务的最大数目(参考PREPARE TRANSACTION命令)。如果它的值被设为0。则将数据库将关闭prepared事务的特性。它的值通常应该和max_connections的值一样大。每个事务消耗600字节(b)共享内存。

查看现有配置值:
gpconfig -s max_prepared_transactions
Values on all segments are consistent
GUC          : max_prepared_transactions
Master  value: 250
Segment value: 250
修改配置
gpconfig -c max_prepared_transactions  -v 300

max_files_per_process

设置每个服务器进程允许同时打开的最大文件数目。缺省是1000。 如果内核强制一个合理的每进程限制,那么你不用操心这个设置。 但是在一些平台上(特别是大多数BSD系统), 内核允许独立进程打开比个系统真正可以支持的数目大得多得文件数。 如果你发现有"Too many open files"这样的失败现像,那么就尝试缩小这个设置。 这个值只能在服务器启动的时候设置。

查看现有配置值:
gpconfig -s max_files_per_process
Values on all segments are consistent
GUC          : max_files_per_process
Master  value: 1000
Segment value: 1000
修改配置
gpconfig -c max_files_per_process -v 1000

shared_buffers

只能配置segment节点,用作磁盘读写的内存缓冲区,开始可以设置一个较小的值,比如总内存的15%,然后逐渐增加,过程中监控性能提升和swap的情况。

gpconfig -s shared_buffers
Values on all segments are consistent
GUC          : shared_buffers
Master  value: 64MB
Segment value: 125MB

修改配置
gpconfig -c shared_buffers -v 1024MB

gpconfig -r shared_buffers -v 1024MB

temp_buffers: 即临时缓冲区,拥有数据库访问临时数据,GP中默认值为1M,在访问比较到大的临时表时,对性能提升有很大帮助。

查看现有配置值:
gpconfig -s temp_buffers
Values on all segments are consistent
GUC          : temp_buffers
Master  value: 1024
Segment value: 1024

修改配置
gpconfig -c temp_buffers -v 4096

gp_fts_probe_threadcount:

设置ftsprobe线程数,此参数建议大于等于每台服务器segments的数目。

查看现有配置值:
gpconfig -s gp_fts_probe_threadcount
Values on all segments are consistent
GUC          : gp_fts_probe_threadcount
Master  value: 16
Segment value: 16

重启数据库,使参数生效

gpstop -u 重新加载配置文件 postgresql.conf 和 pg_hba.conf

参考文档:

https://gp-docs-cn.github.io/docs/ref_guide/config_params/guc_config.html#topic_vsn_22l_z4
https://gp-docs-cn.github.io/docs/ref_guide/config_params/guc-list.html#add_missing_from
https://blog.csdn.net/tomson8975/article/details/52064339
https://blog.csdn.net/wxc20062006/article/details/50602123
https://www.cnblogs.com/zhaowenzhong/p/5667434.html

原文地址:http://blog.51cto.com/michaelkang/2170608

时间: 2024-11-13 20:53:17

Greenplum配置参数优化:5.10.2的相关文章

MYSQL配置参数优化详解

目录 1)连接请求的变量 1.max_connections 2.back_log 3.wait_timeout和interative_timeout 2)缓冲区变量 4.key_buffer_size 5.query_cache_size(查询缓存简称QC) 6.max_connect_errors: 7.sort_buffer_size: 8.max_allowed_packet=32M 9.join_buffer_size=2M 10.thread_cache_size=300 3)配置I

ceph配置参数优化

ceph的配置文件/etc/ceph.conf中可配置参数很多,可以通过以下命令查看: [email protected]:/var/run/ceph# ceph --admin-daemon ceph-mon.osd2.asok config show|wc -l 759 一直想对一些参数进行修改以达到优化性能的目的.以前一篇文章和其它一些资料为基础,总结一下可优化的配置.

Mysql数据库操作系统及配置参数优化

数据库结构优化 表的水平拆分常用的水平拆分方法为:1.对 customer_id进行 hash运算,如果要拆分成5个表 则使用mod(customer_id,5)取出0-4个值2.针对不同的 hashID 把数据存到不同的表中.挑战:1.跨分区表进行数据查询2.统计及后台报表操作 操作系统配置优化 数据库是基于操作系统的,目前大多数MySQL都是安装在Linux系统之上,所以对于操作系统的一些参数配置也会影响到MySQL的性能,下面就列出一些常到的系统配置.网给方面的配置, 要修改/etc/sy

Zabbix配置参数优化

概述:使用zabbix监控服务器已有一段时间,监控的服务器不到100台,发现刷新zabbix页面有卡顿的现象.而且经常报“Zabbix poller processes more than 75% busy”的错误,检查服务器性能还是有保障的,最后发现zabbix_server.conf既然使用的是默认配置(懒得没有底线),zabbix_server.conf的很多配置都没有修改,赶紧脑补了一下,把主要的参数信息优化下. 一.Zabbix服务端的常用参数如下:(参数取值根据服务器配置) 原文地址

HUE 配置参数优化

1.图形页面表展示限制为5000,业务需要进行调整. 参数如下 /opt/cloudera/parcels/CDH-5.14.2-1.cdh5.14.2.p0.3/lib/hue/apps/beeswax/src/beeswax/server/hive_server2_lib.py 744 max_rows=5000 754 max_rows=5000 771 max_rows=5000 784 max_rows=5000 2.hue 下载限制调整 参数如下 /opt/cloudera/parc

Ceph性能优化 之 配置参数调优

该文同时发表在盛大游戏G云微信公众号,粘贴于此,方便各位查阅 Ceph,相信很多IT朋友都听过.因为搭上了Openstack的顺风车,Ceph火了,而且越来越火.然而要用好Ceph却也不是件易事,在QQ群里就经常听到有初学者抱怨Ceph性能太烂,不好用.事实果真如此吗!如果你采用Ceph的默认配置来运行你的Ceph集群,性能自然不能如人意.俗话说,玉不琢,不成器:Ceph也有它的脾性,经过良好配置优化的Ceph性能还是不错的.下文简单分享下,盛大游戏G云在Ceph优化上的一些实际经验,如有错误之

通过查看mysql 配置参数、状态来优化你的mysql

mysql的监控方法大致分为两类: 1.连接到mysql数据库内部,使用show status,show variables,flush status 来查看mysql的各种性能指标. 2. 直接使用mysqladmin查看其性能指标,例如: UserParameter=mysql.uptime,mysqladmin -uroot status|cut -f2 -d":"|cut -f1 -d"T" mysqladmin两个参数,status,extended-st

nginx 高并发参数配置及linux内核参数优化

一.一般来说nginx 配置文件中对优化比较有作用的为以下几项: 1.  worker_processes 8; nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (如,2个四核的cpu计为8). 2.  worker_cpu_affinity 00000001 0000001000000100 00001000 00010000 00100000 01000000 10000000; 为每个进程分配cpu,上例中将8 个进程分配到8 个cpu,当然可以写多个,或者将一个进程分配到

Mysql 配置参数详解以及优化配置

mysql有以下几种日志: 错误日志:   log-err 查询日志:   log 慢查询日志:  log-slow-queries 更新日志:   log-update 二进制日志: log-bin 要把日志生成在 /var/log 目录下(是系统日志存放的地方,只有 root 账号有写权限),需要 MySQL进程对这个目录有读写权限,一般是不这么做的,也考虑到安全问题,包括 MySQL 本身的数据安全,因为对 MySQL 的所有操作,都会记录到常规查询日志.MySQL的日志就不要用 /var