资源池化性能建议参数
以下参数的建议取值仅适用于性能测试场景,不代表生产环境。
表1 资源池化性能建议参数清单
配置项/参数 | 说明 | 建议取值 |
---|---|---|
客户端认证策略 | 在pg_hba.conf增加的客户端认证策略。 | host all all 0.0.0.0/0 md5 |
advance_xlog_file_num | 用于控制备机在后台周期性地提前初始化xlog文件的数目。该参数是为了避免事务提交时执行xlog文件初始化影响性能。 | 5 |
allow_concurrent_tuple_update | 设置是否允许并发更新。 | TRUE |
audit_enabled | 审计开关。 | off |
autovacuum | 自动清理开关。 | on |
autovacuum_analyze_scale_factor | 设置触发一个ANALYZE时增加到autovacuum_analyze_threshold的表大小的缩放系数。 | 0.02 |
autovacuum_max_workers | 设置能同时运行的自动清理线程的最大数量。 | 8 |
autovacuum_mode | 控制autoanalyze或autovacuum的打开情况。 | vacuum |
autovacuum_naptime | 设置两次自动清理操作的时间间隔。 | 5s |
autovacuum_vacuum_cost_delay | 设置在自动VACUUM操作里使用的开销延迟数值。 | 10 |
autovacuum_vacuum_scale_factor | 设置触发一个VACUUM时增加到autovacuum_vacuum_threshold的表大小的缩放系数。 | 0.1 |
bgwriter_delay | 设置后端写线程写“脏”共享缓冲区之间的时间间隔。 | 5s |
bgwriter_flush_after | 设置background writer线程刷页个数超过设定的阈值时,告知操作系统开始将操作系统缓存中的页面异步刷盘。 | 32 |
checkpoint_segments | 设置checkpoint_timeout周期内所保留的最少WAL日志段文件数量。 | 8000 |
checkpoint_timeout | 设置自动WAL检查点之间的最长时间。 | 15min |
client_min_messages | 控制发送到客户端的消息级别。 | ERROR |
cstore_buffers | 设置列存所使用的共享缓冲区的大小。 | 16MB |
default_transaction_isolation | 设置默认的事务隔离级别。 | read committed(读已提交) |
enable_alarm | 允许打开告警检测线程,检测数据库中可能的错误场景。 | off |
enable_asp | 统计参数。是否开启活跃会话信息active session profile。 | off |
enable_bbox_dump | 开启黑匣子功能,在系统不配置core机制的时候仍可产生core文件。 | off |
enable_beta_opfusion | TPCC中出现的聚集函数,排序两类SQL语句的加速执行。 | on |
enable_bitmapscan | 控制优化器对位图扫描规划类型的使用。 | off |
enable_cachedplan_mgr | 是否开启自适应计划选择功能。 | off |
enable_codegen | 标识是否允许开启代码生成优化,目前代码生成使用的是LLVM优化。 | FALSE |
enable_data_replicate | 当数据库在数据导入行存表时,主机与备机的数据同步方式。 | off (表示导入数据行存表时主备数据采用日志(Xlog)方式进行同步) |
enable_global_syscache | 控制是否使用全局系统缓存功能。 | on |
enable_hashjoin | 控制优化器对Hash连接规划类型的使用。 | off |
enable_incremental_checkpoint | 增量检查点开关。 | on |
enable_indexscan_optimization | 控制是否对astore存储引擎下的btree索引扫描 (IndexScan和IndexOnlyScan) 进行优化。 | on |
enable_instance_metric_persistent | 设置是否开启实例资源监控转存功能。 | off |
enable_instr_cpu_timer | 是否捕获SQL执行的cpu时间消耗 。 | off |
enable_instr_rt_percentile | 追踪SQL相应时间的开关。 | off |
enable_instr_track_wait | 是否开启等待事件信息实时收集功能。 | off |
enable_logical_io_statistics | 设置是否开启资源监控逻辑I/O统计功能。 | off |
enable_material | 控制优化器对实体化的使用。 | off |
enable_mergejoin | 控制优化器对融合连接规划类型的使用。 | off |
enable_nestloop | 控制优化器对内表全表扫描嵌套循环连接规划类型的使用。 | off 说明:完全消除嵌套循环连接是不可能的,但是关闭这个变量就会让优化器在存在其他方法的时候优先选择其他方法。 |
enable_opfusion | 控制是否对简单增删改查进行优化。 | on |
enable_page_lsn_check | 数据页lsn检查开关。 | off |
enable_resource_track | 是否开启资源实时监控功能。 | off |
enable_save_datachanged_timestamp | 确定是否收集insert/update/delete,exchange/truncate/drop partition操作对表数据改动的时间。 | FALSE |
enable_seqscan | 控制优化器对顺序扫描规划类型的使用。 | off 说明:完全消除顺序扫描是不可能的,但是关闭这个变量会让优化器在存在其他方法的时候优先选择其他方法。 |
enable_stmt_track | 控制是否启用Full /Slow SQL特性。 | FALSE |
enable_thread_pool | 线程池开关,根据实际平台进行配置。关闭以可获得更好性能。 | off |
enable_user_metric_persistent | 设置是否开启用户历史资源监控转存功能。 | off |
enable_xlog_prune | 设置在任一备机断联时,主机是否根据xlog日志的大小超过参数max_size_for_xlog_prune的值而回收日志。 | off |
fsync | 强制刷盘。设置Vastbase服务器是否使用fsync系统函数确保数据的更新及时写入物理磁盘中。 | POC场景下不考虑数据丢失时可设为off |
full_page_writes | 全页写开关。 | off |
gs_clean_timeout | 控制主节点周期性清理临时表的时间的平均值。 | 0 |
hot_standby | 设置是否允许备机在恢复过程中连接和查询。 | off |
hot_standby_feedback | 设置是否允许将备机上执行查询的结果反馈给主机。 | off |
incremental_checkpoint_timeout | 增量检查点开关打开之后,设置自动WAL检查点之间的最长时间。 | 5min |
instr_unique_sql_count | 控制系统中unique sql信息实时收集功能。 | 0 |
light_comm | 指定服务器是否使用轻量通信方式。 | on |
listen_addresses | 服务器侦听客户端的TCP/IP地址。 | “*”(表示侦听所有IP地址) |
local_syscache_threshold | 系统表cache在单个session缓存的大小。 | 32MB |
log_duration | 控制记录每个已完成SQL语句的执行时间。 | off |
log_min_messages | 控制写到服务器日志文件中的消息级别。 | FATAL |
maintenance_work_mem | 设置在维护性操作(比如VACUUM)中可使用的最大的内存,该参数的设置会影响VACUUM/VACUUM FULL等操作的执行效率。 | 2GB |
max_connections | 允许和数据库连接的最大并发连接数。 | 4096 |
max_files_per_process | 设置每个服务器进程允许同时打开的最大文件数目。 | 100000 |
max_io_capacity | 设置后端写线程批量刷页每秒的I/O上限。 | 10GB |
max_prepared_transactions | 设置可以同时处于“预备”状态的事务的最大数目。 | 2048 |
max_process_memory | 设置一个数据库节点可用的最大物理内存。 | 物理内存80%左右 |
max_redo_log_size | 备DN表示当前回放的最新检查点位置和当前日志回放位置之间日志量的期望值,主DN表示恢复点到当前最新日志之间日志量的期望值。 | 400GB |
numa_distribute_mode | 多NUMA节点的ARM服务器性能调优参数。设置为all表示将部分共享数据和线程分布到不同的NUMA节点下,减少远端访存次数,提高性能。 | all |
pagewriter_sleep | 增量检查点打开后,pagewrite线程每隔pagewriter_sleep的时间刷一批脏页下盘。 | 5s |
pagewriter_thread_num | 设置用于增量检查点打开后后台刷页的线程数。 | 4 |
password_encryption_type | 决定采用何种加密方式对用户密码进行加密存储。 | 1(表示采用sha256和md5两种方式分别对密码加密) |
password_reuse_max | 设置新用户密码时新密码不能为该值指定的次数内使用过的密码。 | 1 |
plog_merge_age | 该参数用于控制性能日志数据输出的周期。 | 0(表示当前会话不再输出性能日志数据。) |
remote_read_mode | 远程读功能开关。读取主机上的页面失败时可以从备机上读取对应的页面。 | non_authentication (开启远程读功能,但不进行证书认证。) |
segment_buffers | 设置Vastbase段页式元数据页的内存大小。 | 1GB |
session_timeout | 会话超时时长。 | 0(关闭超时设置。) |
shared_buffers | 设置Vastbase使用的共享内存大小。 | 物理内存40%左右 |
ss_enable_ssl | 资源池化模式下是否开启ssl功能。 | off |
ss_interconnect_channel_count | mes通信键连通道数量。 | 32 |
ss_recv_msg_pool_size | mes消息接收池大小。 | 1GB |
ss_work_thread_count | mes工作线程的数量。 | 128 |
ssl | SSL功能总开关。 | off |
synchronous_commit | 设置当前事务的同步方式。 | on |
thread_pool_attr | 用于控制线程池功能的详细属性。 | 500,4,(cpubind:1-19,24-44,48-67,72-91) 分别表示线程池中的线程总数、分组数、绑核配置参数。 |
track_activities | 控制收集每个会话中当前正在执行命令的统计数据。 | off |
track_counts | 追踪vacuum相关的统计数据。 | off |
track_sql_count | 控制对每个会话中当前正在执行的SELECT、INSERT、UPDATE、DELETE、MERGE INTO语句进行计数的统计数据。 | off |
transaction_isolation | 设置当前事务的隔离级别。 | read committed |
update_lockwait_timeout | 允许并发更新参数开启情况下,该参数控制并发更新同一行时单个锁的最长等待时间。 | 20min |
use_workload_manager | 开启资源管理功能。 | off |
vacuum_cost_limit | 用于控制VACUUM命令在执行过程中的开销限制。当VACUUM命令的开销超过这个限制时,它会进入休眠状态,以避免过度消耗系统资源。 | 10000 |
wal_buffers | 设置用于存放WAL数据的共享内存空间的XLOG_BLCKSZ数。 | 1GB |
wal_file_init_num | WAL编写器将创建的xlog段文件的数量。 | 20 |
wal_keep_segments | xlog日志文件段数量:设置pg_xlog目录下保留事务日志文件的最小数目。 | 128 |
wal_level | 设置写入WAL信息量的级别。 | archive(包含WAL归档需要的日志信息,从而可以支持数据库的归档恢复) |
wal_log_hints | 设置在检查点之后对页面的第一次修改为页面上元组hint bits的修改时,是否将整个页面的全部内容写到WAL日志中。 | off |
walwriter_cpu_bind | 绑定到WAL写入线程的CPU核。 | 0 |
walwriter_sleep_threshold | xlogflusher进入sleep之前空闲xlog刷新的次数,达到阈值会休眠。 | 50000 |
work_mem | 设置内部排序操作和Hash表在开始写入临时磁盘文件之前使用的内存大小。 | 1MB |
xloginsert_locks | 控制用于并发写预写式日志锁的个数。 | 16 |