计算
弹性云服务器 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
更新时间:2022-06-13 GMT+08:00

内存

介绍与内存相关的参数设置。

本节涉及的参数仅在数据库服务重新启动后生效。

enable_memory_limit

参数说明:启用逻辑内存管理模块。

参数类型:POSTMASTER

取值范围:布尔型

  • on表示启用逻辑内存管理模块。
  • off表示不启用逻辑内存管理模块。

默认值:on

若max_process_memory-shared buffer-cstore buffers少于2G,GaussDB(DWS)强制把enable_memory_limit设置为off。

max_process_memory

参数说明:设置一个数据库节点可用的最大物理内存。

参数类型:POSTMASTER

取值范围:整型,2*1024*1024~INT_MAX/2,单位为KB。

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

设置建议:

DN上该数值需要根据系统物理内存及单节点部署主DN个数决定的。计算公式如下:(物理内存大小 – vm.min_free_kbytes)* 0.7 / (n+主DN个数)。该参数目的是尽可能保证系统的可靠性,不会因数据库内存膨胀导致节点OOM。这个公式中提到vm.min_free_kbytes,其含义是预留操作系统内存供内核使用,通常用作操作系统内核中通信收发内存分配,至少为5%内存。即, max_process_memory=物理内存*0.665/(n+主DN个数),其中,当集群规模小于256时, n=1;当集群规模大于256且小于512时, n=2;当集群规模超过512时,n=3。

CN上该数值内存可设置与DN数值一样。

RAM:集群规划时分配给集群的最大使用内存。

shared_buffers

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

参数类型:POSTMASTER

取值范围:整型,128~INT_MAX,单位为8KB。

改变BLCKSZ的值会改变最小值。

默认值:CN节点为512MB,DN节点为1GB。如果操作系统支持的共享内存小于32MB,则在初始化数据存储区时会自动调整为操作系统支持的最大值。

设置建议:

由于GaussDB(DWS)大部分查询下推,建议DN中此参数设置比CN大。

建议设置shared_buffers值为内存的40%以内。行存列存分开对待。行存设大,列存设小。列存:(单服务器内存/单服务器DN个数)*0.4*0.25。

如果设置较大的shared_buffers需要同时增加checkpoint_segments的值,因为写入大量新增、修改数据需要消耗更多的时间周期。

bulk_write_ring_size

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

参数类型:USERSET

取值范围:整型,16384~INT_MAX,单位为KB。

默认值:2GB

设置建议:建议导入压力大的场景中增加DN中此参数配置。

temp_buffers

参数说明:设置每个数据库会话使用的LOCAL临时缓冲区的大小。

参数类型:USERSET

取值范围:整型,800~INT_MAX/2,单位为8KB。

默认值:8MB

  • 在每个会话的第一次使用临时表之前可以改变temp_buffers的值,之后的设置将是无效的。
  • 一个会话将按照temp_buffers给出的限制,根据需要分配临时缓冲区。如果在一个并不需要大量临时缓冲区的会话里设置一个大的数值,其开销只是一个缓冲区描述符的大小。当缓冲区被使用,就会额外消耗8192字节。

max_prepared_transactions

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

GaussDB(DWS)部署为主备双机时,在备机上此参数的设置必须要高于或等于主机上的,否则无法在备机上进行查询操作。

参数类型:POSTMASTER

取值范围:整型,0~536870911,其中取值为800表示关闭预备事务的特性。

默认值:800

为避免在准备步骤失败,此参数的值不能小于max_connections

work_mem

参数说明:设置内部排序操作和Hash表在开始写入临时磁盘文件之前使用的内存大小。ORDER BY,DISTINCT和merge joins都要用到排序操作。Hash表在散列连接、散列为基础的聚集、散列为基础的IN子查询处理中都要用到。

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

参数类型:USERSET

取值范围:整型,64~INT_MAX,单位为KB。

默认值:64MB

设置建议:

依据查询特点和并发来确定,一旦work_mem限定的物理内存不够,算子运算数据将写入临时表空间,带来5-10倍的性能下降,查询响应时间从秒级下降到分钟级。

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

query_mem

参数说明:设置执行作业所使用的内存。如果设置的query_mem值大于0,在生成执行计划时,优化器会将作业的估算内存调整为该值。

参数类型:USERSET

取值范围:整型,0,或大于32MB的整型,默认单位为KB。如果设置值为负数或小于32MB,将设置为默认值0,此时优化器不会根据该值调整作业的估算内存。

默认值:0

query_max_mem

参数说明:设置执行作业所能够使用的最大内存。如果设置的query_max_mem值大于0,当作业执行时所使用内存超过该值时,将报错退出。

参数类型:USERSET

取值范围:整型,0,或大于32MB的整型,单位为KB。如果设置值为负数或小于32MB,将设置为默认值0,此时不会根据该值限制作业的内存使用。

默认值:0

maintenance_work_mem

参数说明:设置在维护性操作(比如VACUUM、CREATE INDEX、ALTER TABLE ADD FOREIGN KEY等)中可使用的最大的内存。该参数的设置会影响VACUUM、VACUUM FULL、CLUSTER、CREATE INDEX的执行效率。

参数类型:USERSET

取值范围:整型,1024~INT_MAX,单位为KB。

默认值:128MB

设置建议:

  • 建议设置此参数的值大于work_mem,可以改进清理和恢复数据库转储的速度。因为在一个数据库会话里,任意时刻只有一个维护性操作可以执行,并且在执行维护性操作时不会有太多的会话。
  • 自动清理进程运行时,autovacuum_max_workers倍数的内存将会被分配,所以此时设置maintenance_work_mem的值应该不小于work_mem
  • 如果进行大数据量的cluster等,可以在session中调大该值。

psort_work_mem

参数说明:设置列存表在进行局部排序中在开始写入临时磁盘文件之前使用的内存大小。带partial cluster key的表、带索引的表插入,创建表索引,删除表和更新表都会用到。

参数类型:USERSET

多个正在运行的会话可能会同时进行表的局部排序操作,因此使用的总内存可能是psort_work_mem的好几倍。

取值范围:整型,64~INT_MAX,单位为KB。

默认值:512MB

max_loaded_cudesc

参数说明:设置列存表在做扫描时,每列缓存cudesc信息的个数。增大设置会提高查询性能,但也会增加内存占用,特别是当列存表的列非常多时。

参数类型:USERSET

取值范围:整型,100~INT_MAX/2

默认值:1024

max_loaded_cudesc设置过高时,有可能引起内存分配不足。

max_stack_depth

参数说明:设置GaussDB(DWS)执行堆栈的最大安全深度。需要这个安全界限是因为在服务器里,并非所有程序都检查了堆栈深度,只是在可能递规的过程,比如表达式计算这样的过程里面才进行检查。

参数类型:SUSET

设置原则:

  • 此参数的最佳设置是等于操作系统内核允许的最大值(就是ulimit -s的设置)。
  • 如果设置此参数的值大于实际的内核限制,则一个正在运行的递归函数可能会导致一个独立的服务器进程崩溃。在GaussDB(DWS)能够检测内核限制的操作系统上(SLES上),将自动限制设置为一个不安全的值。
  • 因为并非所有的操作都能够检测,所以建议用户在此设置一个明确的值。

取值范围:整型,100~INT_MAX,单位为KB。

默认值:2MB

默认值2MB,这个值相对比较小,不容易导致系统崩溃。但是可能会因为该值较小,导致无法执行复杂的函数。

cstore_buffers

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

参数类型:POSTMASTER

取值范围:整型,16384~INT_MAX,单位为KB。

默认值:32MB

设置建议

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

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

enable_orc_cache

参数说明:设置是否允许在初始化cstore_buffers时,将1/4的cstore_buffers空间预留,用于缓存orc元数据。

参数类型:POSTMASTER

取值范围:布尔型

默认值:on

  • on表示开启缓存orc元数据,可提升hdfs表的查询性能,但是会占用列存buffer资源,导致列存性能下降。
  • off表示关闭缓存orc元数据。

schedule_splits_threshold

参数说明:设置HDFS外表schedule阶段能够在内存中存储的最大文件个数,超过该限制时,将把文件列表下盘处理。

参数类型:USERSET

取值范围:整型,1~INT_MAX

默认值:60000

bulk_read_ring_size

参数说明:并行导出,使用的环形缓冲区大小。

参数类型:USERSET

取值范围:整型,256~INT_MAX,单位为KB。

默认值:16MB

check_cu_size_threshold

参数说明:列存表插入时,如果一个CU中已插入的数据量大于该参数时,开始进行行级大小校验,避免生成非压缩态大于1G的CU。

参数类型:USERSET

取值范围:整形,0~1024,单位为MB。

默认值:1024MB

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