14 Greenplum 常用设置参数

本文全面解析了Greenplum数据库的各项配置参数,包括运行时统计信息、自动统计数据收集、锁管理和工作负载管理等,涵盖了连接认证、系统资源消耗、查询运行及错误报告等多个方面,为数据库管理员提供了深入理解与优化Greenplum性能的关键指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

14 Greenplum 常用设置参数

14.1 查看服务器的参数列表

$ psql -c 'SHOW ALL;'

 

详细的参数请查看:https://blog.youkuaiyun.com/xfg0218/article/details/86648761

 

14.1.1 运行时统计信息收集参数

这些参数控制服务器统计数据收集功能。如果启用了统计信息收集,您可以访问使用pg_stat和系统目录视图pg_statio family统计数据。

stats_queue_level

track_activities

track_counts

update_process_title

 

14.1.2 自动统计数据收集参数

当启用自动统计数据收集,可以运行在同一个事务自动分析。

gp_autostats_mode

gp_autostats_mode_in_functions

log_autostats

gp_autostats_on_change_threshold

 

14.1.3 锁管理参数

以下是锁的参数

 

deadlock_timeout

max_locks_per_transaction

 

14.1.4 工作负载管理参数

以下配置参数配置Greenplum的数据库工作负载管理功能(资源队列),查询优先级,内存利用率和并发控制。

 

gp_resqueue_priority

gp_resqueue_priority_cpucores_per_segment

gp_resqueue_priority_sweeper_interval

gp_vmem_idle_resource_timeout

gp_vmem_protect_limit

gp_vmem_protect_segworker_cache_limit

max_resource_portals_per_transaction

resource_cleanup_gangs_on_wait

resource_select_only

runaway_detector_activation_percent

stats_queue_level

14.1.5 外部表参数

下面的参数配置Greenplum数据的外部表功能。请参阅访问基于文件的外部表有关外部表的详细信息。

 

gp_external_enable_exec

gp_external_grant_privileges

gp_external_max_segs

gp_initial_bad_row_limit

gp_reject_percent_threshold

readable_external_table_timeout

writable_external_table_bufsize

 

14.1.6 数据库表参数

为Greenplum的数据库表下面的参数配置的默认选项设置。

 

gp_create_table_random_default_distribution

gp_default_storage_options

gp_enable_exchange_default_partition

gp_default_storage_options

max_appendonly_tables

gp_appendonly_compaction

gp_appendonly_compaction_threshold

 

14.1.7 数据库和表空间/文件空间参数

面的参数设置数据库,表空间,文件空间在系统中的最大数maximum number。

 

gp_max_tablespaces

gp_max_filespaces

gp_max_databases

 

14.1.8 master和 Segment的参数

下面的参数是控制primary master 和 standby master之间的复制功能参数。

 

repl_catchup_within_range

replication_timeout

wal_receiver_status_interval

 

14.1.9 greenplum扩展参数

以下是Greenplum数据库扩展的参数。

 

pljava_classpath

pljava_statement_cache_size

pljava_release_lingering_savepoints

pljava_vmoptions

 

14.2 连接和认证参数

这些参数控制客户端如何连接和认证Greenplum。

 

14.2.1 连接参数

 

gp_connection_send_timeout

gp_vmem_idle_resource_timeout

listen_addresses

listen_addresses

max_prepared_transactions

superuser_reserved_connections

 

14.2.2 安全和身份验证参数

 

authentication_timeout

db_user_namespace

krb_caseins_users

krb_server_keyfile

krb_srvname

password_encryption

password_hash_algorithm

ssl

ssl_ciphers

 

14.3 系统资源消耗参数

14.3.1 内存消耗参数

这些参数控制系统的内存使用情况。您可以调整gp_vmem_protect_limit避免查询处理过程中电量耗尽的在段上的主机内存。

 

gp_vmem_idle_resource_timeout

gp_vmem_protect_limit

gp_vmem_protect_segworker_cache_limit

gp_workfile_limit_files_per_query

gp_workfile_limit_per_query

gp_workfile_limit_per_query

max_appendonly_tables

max_prepared_transactions

max_stack_depth

shared_buffers

temp_buffers

 

14.3.2 自由空间参数

max_fsm_pages

max_fsm_relations

 

14.3.3 操作系统资源参数

max_files_per_process

shared_preload_libraries

 

14.3.4 事务ID管理参数

xid_stop_limit

xid_warn_limit

 

14.4 查询运行参数

14.4.1 数据透视查询优化器配置参数

optimizer

optimizer_analyze_root_partition

optimizer_control

optimizer_enable_master_only_queries

 

14.4.2 查询计划操作符控制参数

下面的参数控制类型的操作计划legacy query optimizer可以使用的。启用或禁用计划的操作,迫使传统的查询优化器选择不同的规划。这是用于测试,并使用不同的规划类型比较查询性能非常有用。

 

enable_bitmapscan

gp_enable_agg_distinct_pruning

enable_groupagg

gp_enable_direct_dispatch

enable_hashagg

gp_enable_fallback_plan

enable_hashjoin

gp_enable_fast_sri

enable_indexscan

gp_enable_groupext_distinct_ gather

enable_mergejoin

gp_enable_groupext_distinct_ pruning

enable_nestloop

gp_enable_multiphase_agg

enable_seqscan

gp_enable_predicate_ propagation

enable_sort

gp_enable_preunique

enable_tidscan

gp_enable_sequential_window_ plans

gp_enable_adaptive_nestloop

gp_enable_sort_distinct

gp_enable_agg_distinct

gp_enable_sort_limit

 

14.4.3 查询优化器成本计算参数

cpu_index_tuple_cost

gp_motion_cost_per_row

cpu_operator_cost

gp_segments_for_planner

cpu_tuple_cost

random_page_cost

cursor_tuple_fraction

seq_page_cost

effective_cache_size

 

 

14.4.4 数据库统计采样参数

这些参数调整由ANALYZE操作取样的数据量。调整这些参数会影响统计数据收集系统范围。您可以通过使用ALTER TABLE SET STATISTICS子句配置在特定的表和列统计信息收集。

 

default_statistics_target

gp_analyze_relative_error

 

14.4.5 排序操作符设置参数

gp_enable_sort_distinct

gp_enable_sort_limit

 

14.4.6 聚合运算符配置参数

gp_enable_agg_distinct

gp_enable_groupext_distinct_ gather

gp_enable_agg_distinct_pruning

gp_enable_groupext_distinct_ pruning

gp_enable_multiphase_agg

gp_workfile_compress_algorithm

gp_enable_preunique

 

 

14.4.7 联接运算符配置参数

join_collapse_limit

gp_statistics_use_fkeys

gp_adjust_selectivity_for_outerjoins

gp_workfile_compress_algorithm

gp_hashjoin_tuples_per_bucket

 

 

14.4.8 其他查询优化器配置参数

from_collapse_limit

gp_enable_predicate_propagation

gp_max_plan_size

gp_statistics_pullup_from_child_partition

 

14.5 错误报告和日志参数

14.5.1 日志记录信息

log_rotation_age

log_rotation_size

log_truncate_on_rotation

 

14.5.2 日志的事物

debug_pretty_print

log_executor_stats

debug_print_parse

log_hostname

debug_print_plan

log_parser_stats

debug_print_prelim_plan

log_planner_stats

debug_print_rewritten

log_statement

debug_print_slice_table

log_statement_stats

log_autostats

log_timezone

log_connections

gp_debug_linger

log_disconnections

gp_log_format

log_dispatch_stats

gp_max_csv_line_length

log_duration

gp_reraise_signal

 

14.6 系统监控参数

14.6.1 SNMP告警参数

以下参数在事件发生时发送SNMP通知

 

gp_snmp_community

gp_snmp_monitor_address

gp_snmp_use_inform_or_trap

 

14.6.2 邮件警告参数

以下参数将系统配置为在发生致命错误事件时发送电子邮件警报,如中断或服务器崩溃和重置

 

gp_email_from

gp_email_from

gp_email_smtp_server

gp_email_smtp_userid

gp_email_to

 

14.7 greenplum 命令重要参数

14.7.1 语句行为参数

check_function_bodies

default_tablespace

default_transaction_isolation

default_transaction_read_only

search_path

statement_timeout

vacuum_freeze_min_age

 

14.7.2 区域设置和格式参数

client_encoding

lc_messages

DateStyle

lc_monetary

extra_float_digits

lc_numeric

IntervalStyle

lc_time

lc_collate

TimeZone

lc_ctype

 

 

14.7.3 其他客户端默认参数

dynamic_library_path

explain_pretty_print

local_preload_libraries

 

14.8 Greenplum阵列配置参数

14.8.1 互连配置参数

gp_interconnect_fc_method

gp_interconnect_setup_timeout

gp_interconnect_hash_multiplier

gp_interconnect_type

gp_interconnect_queue_depth

gp_max_packet_size

gp_interconnect_snd_queue_depth

 

 

14.8.2 调度配置参数

gp_cached_segworkers_threshold

gp_connections_per_thread

gp_connections_per_thread

gp_connections_per_thread

gp_set_proc_affinity

 

14.8.3 故障操作参数

gp_set_read_only

gp_fts_probe_interval

gp_fts_probe_threadcount

 

14.8.4 分布式事务管理参数

gp_max_local_distributed_cache

 

14.8.5 只读参数

gp_command_count

gp_content

gp_dbid

gp_num_contents_in_cluster

gp_role

gp_session_id

 

<think>好的,我现在需要回答用户关于Greenplum数据库中影响性能的常用参数配置以及如何查看这些参数的问题。首先,我需要回忆一下Greenplum的架构和常见的性能调优参数Greenplum是基于PostgreSQL的MPP数据库,参数配置对分布式查询处理、资源管理和并发控制等方面都很重要。 用户的问题分为两部分:一是哪些参数会影响性能,二是如何查看这些参数的值。对于第一部分,我需要列举常见的参数类别,比如内存相关、并行查询、资源管理、工作负载管理、统计信息和I/O优化等。每个类别下要有具体的参数名称、作用以及推荐配置范围。要注意参数的中英文对照,比如shared_buffers是共享缓冲区,max_connections是最大连接数等。 然后,第二部分是查看参数的方法,可能包括SQL命令如SHOW、SELECT,以及系统表pg_settings,还有GUC工具和配置文件的位置。需要分点说明不同的查看方式,确保用户能够理解如何操作。 接下来,我需要考虑用户可能的背景。用户可能是数据库管理员或开发者,对Greenplum有一定了解,但需要具体的参数指导和操作步骤。因此,回答需要结构清晰,步骤详细,同时提供示例命令,比如使用psql连接到数据库后执行SHOW shared_buffers;或者查询pg_settings表。 同时,需要注意用户之前提到的格式要求:行内公式用$...$,独立公式用$$...$$,但在这个问题中可能涉及较少数学公式,更多是代码块和参数名称。需要正确使用代码块格式,如SQL语句和bash命令用反引号或代码块标识。 还需要检查是否有遗漏的重要参数。比如,内存配置中的statement_mem、gp_workfile_limit_per_query,并行处理中的gp_resqueue_priority_cpucores_per_segment,资源队列相关的max_resource_queues等。另外,维护相关的参数如autovacuum和maintenance_work_mem也可能影响性能,需要包括进去。 在查看参数部分,除了基本的SHOW命令,可能需要提到动态参数和静态参数的区别,部分参数需要重启才能生效,所以需要检查是否需要修改postgresql.conf文件,并用gpstop -u或gpstop -ra重启实例。 还要考虑不同Greenplum版本的差异,比如某些参数可能在较新或旧版本中有不同的名称或默认值,但用户可能没有指定版本,所以需要保持通用性,同时建议参考官方文档。 最后,总结部分需要强调参数调优需要结合实际场景,进行监控和逐步调整,避免一刀切的设置。可能还需要提醒用户备份配置文件和进行性能测试。 现在需要组织这些信息,确保结构清晰,分步骤说明,每个参数类别下有几个关键参数,并给出查看方法的具体命令示例。同时注意使用中文,避免技术术语错误,比如正确翻译参数名称为中文,但保留英文原名以便用户查找文档。</think>$\boxed{\text{Greenplum 性能关键参数及查看方法}}$ Greenplum 的性能优化与参数配置密切相关,以下是 **核心性能参数分类**、**推荐值范围** 及 **查看方法** 的详细说明: --- ### **一、性能关键参数分类** #### 1. **内存与资源分配** - **`shared_buffers`** - **作用**:共享内存缓存区,存储表和索引的磁盘块副本。 - **推荐值**:通常为总内存的 25%~40%(如 64GB 内存设置 `16GB`)。 - **`statement_mem`** - **作用**:单条 SQL 查询在每个 Segment 上的内存上限。 - **推荐值**:`(总内存 / 最大并发查询数 / Segment 数) × 0.8`。 - **`gp_vmem_protect_limit`** - **作用**:单个 Segment 内存保护阈值,避免 OOM。 - **推荐值**:根据 Segment 内存调整(如 `8GB`)。 #### 2. **并行处理与连接数** - **`max_connections`** - **作用**:Master 节点最大客户端连接数。 - **推荐值**:生产环境建议 `500~1000`(需配合资源队列)。 - **`gp_segments_for_planner`** - **作用**:优化器估算并行度的虚拟 Segment 数。 - **推荐值**:通常为实际 Segment 数的 `2~4` 倍。 #### 3. **工作负载管理(WLM)** - **资源队列参数** - **`gp_resqueue_priority`**:启用查询优先级调度(`on`)。 - **`max_resource_queues`**:定义资源队列数量(需结合业务设计)。 #### 4. **统计信息与优化器** - **`gp_analyze_relative_error`** - **作用**:ANALYZE 计算统计信息的精度(值越小越精确)。 - **推荐值**:默认 `0.25`,复杂查询可设为 `0.1`。 - **`gp_enable_relsize_collection`** - **作用**:启用实时表大小统计(建议 `on`)。 #### 5. **磁盘与 I/O 优化** - **`checkpoint_segments`** - **作用**:WAL 日志段数量,影响检查点频率(Greenplum 6+ 中替换为 `max_wal_size`)。 - **推荐值**:默认 `64`,高写入负载可调高。 - **`effective_io_concurrency`** - **作用**:异步 I/O 并发数(需 RAID/SSD 支持)。 - **推荐值**:HDD 设为 `2`,SSD 设为 `4~8`。 --- ### **二、参数值查看方法** #### 1. **通过 SQL 命令查看** ```sql -- 查看单个参数值(如 shared_buffers) SHOW shared_buffers; -- 查询所有参数及当前值 SELECT name, setting, unit, context FROM pg_settings WHERE name LIKE '%gp%' OR name IN ('shared_buffers', 'work_mem'); ``` #### 2. **通过系统表 `pg_settings`** ```sql -- 按分类筛选关键参数 SELECT name, setting, short_desc FROM pg_settings WHERE category LIKE '%Memory%' OR category LIKE '%Query Tuning%'; ``` #### 3. **通过 `gpconfig` 工具(Greenplum 专用)** ```bash # 查看当前集群参数值(如 statement_mem) gpconfig -s statement_mem # 查看参数在 Master 和 Segment 上的差异 gpconfig -s max_connections ``` #### 4. **直接查看配置文件** - **Master 节点配置文件**:`$MASTER_DATA_DIRECTORY/postgresql.conf` - **Segment 节点配置**:通过 `gpconfig` 统一管理,避免手动修改。 --- ### **三、参数调优建议** 1. **循序渐进调整**:每次修改 1~2 个参数,观察性能变化。 2. **监控工具配合**:使用 `gp_toolkit` 监控查询内存、锁竞争等指标。 3. **区分静态/动态参数**: - **静态参数**(如 `shared_buffers`)需重启生效: ```bash gpstop -ra # 重启整个集群 ``` - **动态参数**(如 `work_mem`)可在线生效: ```sql SET work_mem = '256MB'; ``` --- $\boxed{\text{关键示例}}$ **场景**:优化高并发查询性能 1. 增加 `max_connections` 并配置资源队列: ```bash gpconfig -c max_connections -v 800 ``` 2. 限制单查询内存,防止资源争抢: ```sql ALTER RESOURCE QUEUE adhoc WITH (MEMORY_LIMIT='8GB'); ``` **参考文档**: - [Greenplum 参数官方指南](https://docs.vmware.com/en/VMware-Greenplum/7/greenplum-database/ref_guide-config_params-guc-list.html) - [性能调优白皮书](https://gpdb.docs.pivotal.io/6-0/pdf/GP6BestPractices.pdf)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盒马coding

你的支持是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值