计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive
本文导读

展开导读

文档首页/ 数据仓库服务 GaussDB(DWS)/ 性能调优/ 常见性能参数调优设计

常见性能参数调优设计

更新时间:2024-07-01 GMT+08:00

在使用数据库的时候,为了提高集群的性能,有多种方式去调优,从硬件配置到软件驱动升级,再到数据库的内部参数调整。本章节旨在介绍一些常用参数以及推荐配置。

  1. query_dop

    设置用户自定义的查询并行度。

    SMP架构是一种利用富余资源来换取时间的方案,计划并行之后必定会引起资源消耗的增加,包括CPU、内存、I/O和网络带宽等资源的消耗都会出现明显的增长,而且随着并行度的增大,资源消耗也随之增大。

    • 当资源达到瓶颈的情况下,SMP无法提升性能,反而可能导致性能的劣化。在出现资源瓶颈的情况下,建议关闭SMP。
    • 当资源许可的情况下,并行度越高,性能提升效果越好。

    SMP并行度支持会话级设置,推荐在执行符合要求的查询前,打开SMP,执行结束后,关闭SMP。以免在业务峰值时,对业务造成冲击。

    可通过set query_dop=10,在会话中打开SMP。

  2. enable_dynamic_workload

    开启动态负载管理。动态负载管理指数据库内部根据用户负载情况,自动对复杂查询进行队列控制,不再需要手动设置参数,做到系统参数免调优。

    该参数默认打开,需要注意以下几点:

    • 集群有一个CN会作为中心协调节点(CCN),用于收集和调度作业执行,Central Coordinator State会显示其状态。当CCN不存在时,作业不再受动态负载管理控制。
    • 简单查询作业(估算值<32MB)、非DML(即非INSERT、UPDATE、DELETE和SELECT)语句,不走自适应负载,需要通过max_active_statements来进行单CN的上限控制。
    • 在自适应负载特性下,参数work_mem的默认数值不能变大,否则会引起内存不受控(例如未做Analyze的语句)。
    • 以下场景或语句由于内存使用的特殊性和不确定性,可能导致大并发场景内存不受控,遇到需要降低并发数:
      • 单条元组占用内存过大,例如,基表包含超过MB级别的宽列。
      • 完全下推语句的查询。
      • 需要在CN上耗费大量内存的语句,例如,不能下推的语句、withhold cursor场景。
      • 由于计划生成不当导致hashjoin算子建立的hash表重复值过多,占用大量内存。
      • 包含UDF,且UDF中使用大量内存。

    该参数可配合query_dop=0使用,当query_dop设置为0(自适应),系统会根据资源情况和计划特征,动态为每个查询选取[1,8]之间的最优的并行度。enable_dynamic_workload参数会动态分配内存。

  3. max_active_statements

    设置全局的最大并发数量。此参数只应用到CN,且针对一个CN上的执行作业。

    需根据系统资源(如CPU资源、IO资源和内存资源)情况,调整此数值大小,使得系统支持最大限度的并发作业,且防止并发执行作业过多,引起系统崩溃。

    • 当取值-1或者0时,不限制全局并发数。
    • 在点查询的场景下,参数建议设置为100。
    • 在分析类查询的场景下,参数的值设置为CPU的核数除以DN个数,一般可以设置5~8个。
  4. session_timeout

    缺省情况下,客户端连接数据库后处于空闲状态时会根据参数的默认值自动断开连接。

    取值范围:整型,0-86400,最小单位为秒(s),0表示关闭超时设置。一般不建议设置为0。

  5. 影响数据库内存的五大参数:
    max_process_memory、shared_buffers、cstore_buffers、work_mem和maintenance_work_mem。
    • max_process_memory

      max_process_memory是逻辑内存管理参数,主要功能是控制单个CN/DN上可用内存的最大峰值。

      非从备DN节点自动适配,公式为(物理内存大小)* 0.8 / (1+主DN个数),当结果不足2GB时,默认取2GB。从备DN默认为12GB。

    • shared_buffers

      设置DWS使用的共享内存大小。增加此参数的值会使DWS比系统默认设置需要更多的System V共享内存。

      建议设置shared_buffers值为内存的40%以内。主要用于行存表scan。计算公式:shared_buffers=(单服务器内存/单服务器DN个数)*0.4*0.25

    • cstore_buffers

      设置列存和OBS、HDFS外表列存格式(orc、parquet、carbondata)所使用的共享缓冲区的大小。

      列存表使用cstore_buffers设置的共享缓冲区,几乎不用shared_buffers。因此在列存表为主的场景中,应减少shared_buffers,增加cstore_buffers。

      OBS、HDFS外表使用cstore_buffers设置ORC、Parquet、Carbondata的元数据和数据的缓存,元数据缓存大小为cstore_buffers的1/4,最大不超过2GB,其余缓存空间为列存数据和外表列存格式数据共享使用。

    • work_mem

      设置内部排序操作和Hash表在开始写入临时磁盘文件之前使用的内存大小。

      ORDER BY,DISTINCT和merge joins都要用到排序操作。Hash表在散列连接、散列为基础的聚集、散列为基础的IN子查询处理中都要用到。

      对于复杂的查询,可能会同时并发运行好几个排序或者散列操作,每个都可以使用此参数所声明的内存量,不足时会使用临时文件。同样,好几个正在运行的会话可能会同时进行排序操作。因此使用的总内存可能是work_mem的好几倍。

      计算公式:

      对于串行无并发的复杂查询场景,平均每个查询有5-10关联操作,建议work_mem=50%内存/10。

      对于串行无并发的简单查询场景,平均每个查询有2-5个关联操作,建议work_mem=50%内存/5。

      对于并发场景,建议work_mem=串行下的work_mem/物理并发数。

    • maintenance_work_mem

      设置维护性操作(比如VACUUM、CREATE INDEX、ALTER TABLE ADD FOREIGN KEY等)中可使用的最大的内存。

      设置建议:

      建议设置此参数的值大于work_mem,可以改进清理和恢复数据库转储的速度。因为在一个数据库会话里,任意时刻只有一个维护性操作可以执行,并且在执行维护性操作时不会有太多的会话。

      当自动清理进程运行时,autovacuum_max_workers倍数的内存将会被分配,所以此时设置maintenance_work_mem的值应该不小于work_mem。

  6. bulk_write_ring_size

    数据并行导入使用的环形缓冲区大小。

    该参数主要影响入库性能,建议导入压力大的场景增加DN上的该参数配置。

  7. 影响数据库连接的两大参数:
    max_connections和max_prepared_transactions
    • max_connections

      允许和数据库连接的最大并发连接数。此参数会影响集群的并发能力。

      设置建议:

      CN中此参数建议保持默认值。DN中此参数建议设置为CN的个数乘以CN中此参数的值。

      增大这个参数可能导致GaussDB(DWS)要求更多的System V共享内存或者信号量,可能超过操作系统缺省配置的最大值。这种情况下,请酌情对数值加以调整。

    • max_prepared_transactions

      设置可以同时处于"预备"状态的事务的最大数目。增加此参数的值会使GaussDB(DWS)比系统默认设置需要更多的System V共享内存。

    须知:

    max_connections取值的设置受max_prepared_transactions的影响,在设置max_connections之前,应确保max_prepared_transactions的值大于或等于max_connections的值,这样可确保每个会话都有一个等待中的预备事务。

  8. checkpoint_completion_target

    指定检查点完成的目标。

    含义是每个checkpoint需要在checkpoints间隔时间的50%内完成。

    默认值为0.5,为提高性能可改成0.9。

  9. data_replicate_buffer_size

    发送端与接收端传递数据页时,队列占用内存的大小。此参数会影响主备之间复制的缓冲大小。

    默认值为128MB,若服务器内存为256G,可适当增大到512MB。

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容