VastBase——数据库参数调优

一、内存参数调优

        数据库的复杂查询语句性能非常强的依赖于数据库系统内存的配置参数。数据库系统内存的配置参数主要包括逻辑内存管理的控制参数和执行算子是否下盘的参数:

1.逻辑内存管理参数:max_process_memory

max_process_memory – shared memory ( 包括shared_buffers ) – cstore_buffers

根据上述计算公式可以看出影响执行作业可用内存参数的主要两个参数为shared_buffers及cstore_buffers

2.共享内存参数:shared_buffers

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

3.列存共享缓冲区:cstore_buffers

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

4.逻辑内存查询

逻辑内存管理有专门的视图查询数据库节点中各大块内存区域已使用内存及峰值信息。

select * from PG_TOTAL_MEMORY_DETAIL;

5.work_mem

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

二、逻辑内存管理模块

逻辑内存管理模块参数:enable_memory_limit

设置enable_memory_limit为true,即启用内存管理模块,可用于限制进程的内存使用。当其他参数配置不满足数据库启动条件时,则启动失败,并给出提示。

  • 用户设置enable_memory_limit=true,但其他参数配置不满足条件,则数据库启动失败,并提示原因:

  •  如果用户设置enable_memory_limit=false, 启动成功并且提示风险

 

 三、IO参数调优

1.pagewriter_sleep

        增量checkpoint模式下,控制后端写线程pagewriter刷页频率,当脏页占据shared_buffers的比例达到dirty_page_percent_max时,每批脏页数量以设定的max_io_capacity计算出的值刷页。
pagewriter线程刷页用于推进recovery点,设置时间较长时,会导致recovery点推进慢,宕机启动时间长和xlog日志堆积问题。
        为降低RTO,减少日志膨胀,需要将pagewriter_sleep适当调小,加快页面刷盘,推进recovery点,促进日志回收。

2.bgwriter_delay

        增量checkpoint模式下,控制后端写线程bgwriter刷页频率,当前空闲缓冲页面个数占据shared_buffers的比例低于candidate_buf_percent_target时,每批脏页数量以设定的max_io_capacity计算出的值刷页。
        bgwriter线程将可以淘汰的页面刷盘,加速业务执行时,页面占用槽位的速度,时间过长会影响性能。

        为了提升业务性能时,适当调小bgwriter_delay的时间

3.max_io_capacity

        设置后端写线程(pagewriter线程和bgwriter线程)批量刷页每秒的I/O上限,需要根据具体业务场景和机器磁盘I/O能力进行设置。
        要求RTO很短时间或者数据量比共享内存大多倍的情况,业务访问数据量又是随机访问时,该值不宜过小。该参数设置较小会减小后端写线程刷页个数,如果业务触发页面淘汰多时,该值设置小会影响业务。
        max_io_capacity需依据随机写I/O能力进行最优设置。

                

四、常见问题

 1.work_mem 参数设置得太小

        在 openGauss数据库中,work_mem 参数指定了每个运行的内部排序操作或哈希表操作使用的内存量。如果将 work_mem 参数设置得太小,可能会导致以下一些常见问题:
        临时文件使用增加: 当内存不足以执行排序或哈希操作时,openGauss可能会将部分数据存储在临时文件中进行处理。这会增加磁盘 I/O 操作,导致查询性能下降,并可能对系统的整体性能产生负面影响。
        性能下降: 当 work_mem 设置得太小时,数据库可能不得不频繁地将数据分成更小的块进行处理,这可能会导致性能下降。特别是对于需要进行大量内部排序或哈希操作的查询,性能影响可能尤为明显。
        查询超时: 对于需要大量内存的查询,如果 work_mem 设置得太小,可能会导致查询超时或被取消。这可能会影响用户体验,并且可能导致某些查询无法完成。
        资源争用: 如果多个并发查询都需要大量内存,但 work_mem 设置得太小,可能会导致资源争用和竞争条件,进而影响系统的整体稳定性和性能。

2.I/O 操作较大

        性能下降: 大量的 I/O 操作可能会导致数据库性能下降,因为 I/O 操作通常是数据库中最耗费资源的操作之一。特别是在磁盘 I/O 受限的情况下,数据库的响应时间可能会显著增加。
        查询响应时间增加: 如果数据库需要频繁地从磁盘读取或写入数据,查询的响应时间可能会显著增加。这可能会影响用户体验,并导致用户感觉到数据库反应不及时。
        并发性能下降: 当大量的 I/O 操作发生时,数据库可能会面临并发性能下降的问题。例如,如果多个用户同时执行大量的查询或写操作,磁盘可能会成为瓶颈,导致查询响应时间增加或甚至查询超时。
        数据一致性问题: 如果数据库在执行写操作时发生故障或意外关闭,可能会导致数据一致性问题,因为尚未写入磁盘的数据可能会丢失或损坏。因此,高 I/O 负载下的数据库需要确保适当的备份和恢复策略,以最大程度地减少数据丢失的风险。

五、总结

        CPU通常情况下并没有多少调优手段,依赖于厂商调校。所以需要与服务器厂商充分沟通。研读厂商技术手册。
        I/O性能指标通常有:使用率、饱和度、IOPS(Input/Output Per Second)吞吐量、响应时间。通过选择不同的文件系统、缓存配置以及数据库参数pagewriter_sleep、bgwriter_delay等进行调优。
        网络的性能指标通常有:带宽、延时、吞吐量、PPS,网络性能通常情况下较难诊断,若为生产环境建议部署监控。
        数据库中可以通过内存参数work_mem、shared_buffers等进行调优,或者根据实际情况选择是否开启参数enable_memory_limit。

        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/413413.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32 - 笔记3

1 开发有基于寄存器和HAL库 在开发 STM32 系列微控制器时,你可以选择基于寄存器的开发方法或使用 STM32 HAL(硬件抽象层)库进行开发。两者各有优缺点,适用于不同的场景和开发需求。下面详细介绍两种方法的特点、使用场景以及示例…

五、实现随机地图

一、创建场景 拖拽层级面板,删除摄像机 二、使用Addressable 给场景设置碰撞器 三、场景切换 场景中增加一个数据集合选择场景 四、字典 1、作用 根据列表中的RoomType查找数据 创建一个RoomDataSO的列表;创建一个字典,匹配房间类型和数据…

安装MySQL,navicat以及Django配置遇到的一些问题

MySQL安装问题 安装MySQL按照了此文章: MySQL数据库下载及安装教程(最最新版)_mysql下载安装-CSDN博客https://blog.csdn.net/weixin_39289696/article/details/128850498首先是遇到了starting the server红色叉号显示 按照上面文章的介绍…

故障诊断 | 基于小波时频图与Swin Transformer的轴承故障诊断方法(PyTorch)

文章目录 文章概述程序设计参考资料文章概述 基于小波时频图与Swin Transformer的轴承故障诊断方法 针对用传统的故障诊断方法难以对非线性非平稳的柴油机故障信号进行准确高效诊断的问题, 提出基于小波时频图与Swin Transformer的故障诊断方法。该方法可以有效结合小波时频分…

Luma AI,让你的视频像电影一样精彩!附带使用教程

Luma AI,让你的视频像电影一样精彩!附带使用教程 随着 AI 的应用变广,各类 AI 程序已逐渐普及。AI 已逐渐深入到人们的工作生活方方面面。而 AI 涉及的行业也越来越多,从最初的写作,到医疗教育,再到现在的…

二叉树详解(进阶)

目录 1. 二叉搜索树 1.1 基本概念 1.2 基本操作 1.3 性能分析 1.4 键值对 2. AVL树和红黑树 2.1 AVL树 2.2 红黑树 3. 红黑树模拟实现STL中的map与set 1. 二叉搜索树 1.1 基本概念 二叉搜索树(BST,Binary Search Tree)&#xff1a…

Tomcat多实例部署

文章目录 Tomcat多实例部署一、安装好 jdk1.1设置JDK环境变量 image-20240820142906811二、安装 tomcat2.1配置 tomcat 环境变量2.2修改 tomcat2 中的 server.xml 文件2.3修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量2.4启动各 tom…

【学习笔记】卫星通信发展趋势

卫星通信系统是融合现代通信技术、航天技术与计算机技术的综合应用,已成为国际与国内通信、国防、移动通信及广播电视领域的关键基础设施。基于其频带宽度大、通信容量高、业务兼容性强、覆盖范围广、性能稳定、地理条件适应性高及成本与距离无关等特性,…

uniapp scroll-view滚动触底加载 height高度自适应

背景&#xff1a; scroll-view组件是使用&#xff0c;官网说必须给一个高度height&#xff0c;否则无法滚动&#xff0c;所以刚开始设置了<scroll-view :style"height: 94vh" :scroll-y"true">设置了一个高度&#xff0c;想着vh应该挺合适的&#xf…

PhpStorm2024版设置自动换行(软换行)

Settings > Editor > General > Soft Wraps 选中并加上对应的文件

面试SQL题的水到底有多深?一文带你揭晓

不谋万世者&#xff0c;不足谋一时&#xff1b;不谋全局者&#xff0c;不足谋一域 目录 0 面试现状 1 面试SQL题目的难度及特点 1.1 题目场景化 1.2 题目算法化 1.3 方法多元化 2 破局之道 3 总结 数字化建设通关指南 主要内容&#xff1a; &#xff08;1&#xff09;SQL进阶实…

四、监控搭建-Prometheus-采集端批量部署

四、监控搭建-Prometheus-采集端批量部署 1、背景2、目标3、传承4、操作4.1、准备部署工具4.2、编制部署脚本4.3、服务端添加客户端 1、背景 在前三篇中我们搭建了Prometheus平台&#xff0c;采集端部署和配合图形化grafana部署&#xff0c;将Linux主机进行监控。基本完成了一…

『功能项目』怪物反击主角复活【14】

本章项目视频展示 当前文章成果展示 我们打开上一篇13技能爆炸与伤害数值显示的项目&#xff0c; 新建一个脚本InfoSystem.cs 新建一个游戏管理器GameManager.cs 在场景中创建一个空物体命名为GameManager 将GameManager.cs脚本挂载至空物体GameManager对象身上 增添PlayerRayC…

【SpringBoot】电脑商城-10-商品功能

商品热销排行 1 商品-创建数据表 1.使用use命令先选中store数据库。 USE store;2.在store数据库中创建t_product数据表。 CREATE TABLE t_product (id int(20) NOT NULL COMMENT 商品id,category_id int(20) DEFAULT NULL COMMENT 分类id,item_type varchar(100) DEFAULT N…

Loki Unable to fetch labels from Loki (no org id)

应该是多租户相关导致的 参考文档: 参考文档cMulti-tenancy | Grafana Loki documentationDescribes how Loki implements multi-tenancy to isolate tenant data and queries.https://grafana.com/docs/loki/latest/operations/multi-tenancy/ https://github.com/grafana…

【Git 学习笔记_23】Git 实用冷门操作技巧(二)——妙用 git bisect 与 git blame 进行代码调试

文章目录 11.3 用 git bisect 进行调试11.4 使用 git blame 命令 本节所在位置&#xff1a; 活用 git stash&#xff08;上&#xff09;保存并应用 stash&#xff08;上&#xff09;用 git bisect 进行调试&#xff08;二&#xff09;✔️使用 git blame 命令&#xff08;二&am…

零基础Opencv学习(三)

概述&#xff1a;主要目的是为了在图像中获取所需要的特征信息&#xff0c;比如直线或者圆等 一、标准霍夫变换 cv::Mat midImage, dstImage;/// 边缘检测 转化灰度图cv::Canny(image, midImage, 50, 200, 3);cv::cvtColor(midImage, dstImage, CV_GRAY2BGR);/// 进行霍夫线变…

浅谈SpringMvc的核心流程与组件

一、SpringMvc的核心流程 当发起请求时被前置的控制器(DispatcherServlet)拦截到请求&#xff0c;根据请求参数生成代理请求&#xff0c;找到请求对应的实际控制器&#xff0c;控制器处理请求&#xff0c;创建数据模型&#xff0c;访问数据库&#xff0c;将模型响应给中心控制…

ubuntu24下python3.9安装pytorch

安装gpu版pytorch 1.去官网查找命令 https://pytorch.org/get-started/previous-versions/由于我们安装的是CUDA12.1&#xff0c;所以我们选择12.1的进行安装 安装完成之后通过下面代码进行测试 >>> import torch >>> print(torch.cuda.is_available()) T…

Linux入门攻坚——30、sudo、vsftpd

su&#xff1a;Switch User&#xff0c;即切换用户 su [-l user] -c ‘COMMAND’ 如&#xff1a;su -l root -c ‘COMMAND’ 如果没有指定-l user&#xff0c;则默认是root sudo&#xff1a;可以让某个用户不需要拥有管理员的密码&#xff0c;而可以执行管理员的权限。 需…