暂无图片
暂无图片
暂无图片
openGauss学习笔记
2023-08-26 09:38:02 33479
简介:openGauss学习笔记
openGauss学习笔记-235 openGauss性能调优-系统调优-资源负载管理-资源管理准备-创建资源池
openGauss支持通过创建资源池对主机资源进行划分。开启资源负载管理之后,仅使用默认资源池并不能满足业务对资源负载管理的诉求,必须根据需要创建新的资源池,对系统资源进行重分配,来满足实际业务对系统资源精细管理的需要。普通资源池的特点见表1。且必须没有组资源池关联该控制组对应的子class。mempercent默认为0%,没有mempercent相加小于100%的限制。defaultpool的详细属性如表2所示。mempercent100最大占用内存百分比。cpuaffinity1CPU亲和性,保留参数。activestatements1资源池允许的最大并发数。
shuchaoyang
2024-11-23
49 浏览
openGauss学习笔记-234 openGauss性能调优-系统调优-资源负载管理-资源管理准备-设置控制组
openGauss资源负载管理的核心是资源池,而配置资源池首先要在环境中实现控制组Cgroups的设置。更多Cgroups的原理介绍,请查看相关操作系统的产品手册。Class控制组为数据库业务运行所在的顶层控制组,集群部署时会自动生成默认子Class控制组“DefaultClass”。DefaultClass的Medium控制组会含有系统触发的作业在运行,该控制组不允许进行资源修改,且运行在该控制组上的作业不受资源管理的控制,所以推荐创建新的子Class及其Workload控制组来设置资源比例。在openGauss中,需要在每个集群节点上执行控制组的创建、更新、删除操作,才能实现对整个集群资源的控制。
shuchaoyang
2024-11-22
97 浏览
openGauss学习笔记-233 openGauss性能调优-系统调优-资源负载管理-资源管理准备-启动资源负载管理功能
使用资源负载管理功能前,需要参考本节完成参数配置。在openGauss中,如果需要对系统资源进行管理,用户需要拥有DBA权限。openGaussSELECTrolnameFROMpgrolesWHERErolsystemadmin't';如果想要将一个用户纳入资源负载管理的范围,则此用户必须具有login权限。openGaussSELECTrolnameFROMpgrolesWHERErolcanlogin't';defaultpool的详细介绍请参见表2。以操作系统用户omm登录openGauss主节点。重启数据库使参数设置生效。
shuchaoyang
2024-11-21
91 浏览
openGauss学习笔记-232 openGauss性能调优-系统调优-资源负载管理-资源管理准备-资源规划
完成资源负载管理功能配置前,需要先根据业务模型完成租户资源的规划。业务运行一段时间后,可以根据资源的使用情况再进行配置调整。本章节我们假设某大型企业内的两个部门共用同一套集群,openGauss通过将同一个部门需要使用的系统资源集合划分为系统的一个租户,以此来实现不同部门间的资源隔离,其资源规划如表1所示。
shuchaoyang
2024-11-20
89 浏览
openGauss学习笔记-231 openGauss性能调优-系统调优-资源负载管理-资源负载管理概述
openGauss提供了资源负载管理手段,来均衡任务对系统资源的利用。openGauss对于系统资源的管理范围包含CPU资源、内存资源、IO资源和存储资源。通过对系统的资源进行合理的分配,避免发生资源的不合理占用导致系统运行效率下降或者引发系统运行问题。控制组是controlgroups的缩写,是Linux内核提供的一种可以限制、记录、隔离进程组所使用的物理资源的机制。如果一个进程加入了某一个控制组,该控制组对Linux的系统资源都有严格的限制,进程在使用这些资源时,不能超过其最大限制。更多Cgroups的原理介绍,请查看相关操作系统的产品手册。资源池通过绑定Cgroups对资源进行管理。
shuchaoyang
2024-11-19
103 浏览
openGauss学习笔记-230 openGauss性能调优-系统调优-配置并行查询功能
openGauss的SMP并行技术是一种利用计算机多核CPU架构来实现多线程并行计算,以充分利用CPU资源来提高查询性能的技术。在复杂查询场景中,单个查询的执行较长,系统并发度低,通过SMP并行执行技术实现算子级的并行,能够有效减少查询执行时间,提升查询性能及资源利用率。SMP并行技术的整体实现思想是对于能够并行的查询算子,将数据分片,启动若干个工作线程分别计算,最后将结果汇总,返回前端。然而在事务类大并发业务场景下,由于单个查询本身的时延很短,使用多线程并行技术反而会增加查询时延,降低系统吞吐性能。通过计划Stream算子上表明的dop信息即可看出各个算子的并行情况。不支持子查询subplan和initplan的并行,以及包含子查询的算子的并行。设置querydopvalue,不考虑资源情况和计划特征,强制选取dop为1或value。SMP并行度支持会话级设置,推荐客户在执行符合要求的查询前,打开smp,执行结束后,关闭smp。以免在业务峰值时,对业务造成冲击。
shuchaoyang
2024-11-18
104 浏览
openGauss学习笔记-229 openGauss性能调优-系统调优-配置Ustore
Ustore存储引擎,又名InplaceUpdate存储引擎,是openGauss内核新增的一种存储模式。此前的版本使用的行存储引擎是AppendUpdate模式。追加更新对于业务中的增、删以及HOTUpdate有很好的表现,但对于跨数据页面的非HOTUPDATE场景,垃圾回收不够高效。Ustore存储引擎将最新版本的“有效数据”和历史版本的“垃圾数据”分离存储。Ustore存储引擎采用NUMAaware的UNDO子系统设计,使得UNDO子系统可以在多核平台上有效扩展;同时采用多版本索引技术,解决索引清理问题,有效提升了存储空间的回收复用效率。
shuchaoyang
2024-11-17
105 浏览
openGauss学习笔记-228 openGauss性能调优-系统调优-LLVM使用建议
设置合理的workmem,在允许的条件下尽可能设置较大的workmem,如果出现大量数据落盘,则建议关闭LLVM动态编译优化。在ARM平台下使用gstack抓取栈时,可能会由于LLVM重复打印同一个栈帧,导致其他线程的栈无法正常打印。此时可以通过修改gstack脚本,限制打印的栈深度来避免该问题。a.在shell中执行sudovimwhichgstack命令。b.修改脚本中所有的backtrace变量,加上栈深度限制,例如限制打印的栈深度为100,则第一个backtrace修改为backtrace“bt100”,其他backtrace变量的修改方法类似。
shuchaoyang
2024-11-16
113 浏览
openGauss学习笔记-227 openGauss性能调优-系统调优-其他因素对LLVM性能的影响
LLVM优化效果不仅依赖于数据库内部具体的实现,还与当前所选择的硬件环境等有关。如果整个表达式计算中后者占据了主要部分,使用LLVM动态编译优化,可能会导致性能劣化。通过设置logminmessage的级别为DEBUG1可以查看到哪些表达式直接调用了C代码实现。LLVM特性的一个重要思想是保障数据的局域特性,即数据应尽可能的存放在寄存器中。同时应减少数据加载,因此在使用LLVM优化时应设置足够大的workmem,保证对应使用LLVM优化的执行代码整个过程在内存中实现,否则可能引起性能劣化。LLVM特性实现了简易的代价估算模型,即依据当前参与节点运算的表大小决定当前节点是否考虑使用LLVM动态编译优化。如果优化器低估了实际参与运算的行数,则原本可获得收益的未正常获得收益。
shuchaoyang
2024-11-14
118 浏览
openGauss学习笔记-237 openGauss性能调优-SQL调优-SQL执行计划介绍-概述
SQL执行计划是一个节点树,显示openGauss执行一条SQL语句时执行的详细步骤。每一个步骤为一个数据库运算符。使用EXPLAIN命令可以查看优化器为每个查询生成的具体执行计划。EXPLAIN给每个执行节点都输出一行,显示基本的节点类型和优化器为执行这个节点预计的开销值。最底层节点是表扫描节点,它扫描表并返回原始数据行。并且这些操作通常都有多种方法,因此在这些位置也有可能出现不同的执行节点类型。除了设置不同的执行计划显示格式外,还可以通过不同的EXPLAIN用法,显示不同详细程度的执行计划信息。常见有如下几种,关于更多用法请参见EXPLAIN语法说明。在一个查询上运行EXPLAINANALYZE或EXPLAINPERFORMANCE有时会比普通查询明显的花费更多的时间。因此,当定位SQL运行慢问题时,如果SQL长时间运行未结束,建议通过EXPLAIN命令查看执行计划,进行初步定位。EXPLAINPERFORMANCE轻量化执行方式与EXPLAINPERFORMANCE保持一致,在原来的基础上减少了性能分析的时间,执行时间与SQL执行时间的差异显著减少。
shuchaoyang
2024-11-13
111 浏览
openGauss学习笔记-226 openGauss性能调优-系统调优-配置LLVM-LLVM适用场景与限制
表达式计算支持的数据类型包括bool、tinyint、smallint、int、bigint、float4、float8、numeric、date、time、timetz、timestamp、timestamptz、interval、bpchar、varchar、text、oid。仅当表达式出现在向量化执行引擎中Scan节点的filter,HashJoin节点中的complicatehashcondition、hashjoinfilter、hashjointarget,NestedLoop节点中的filter、joinfilter,MergeJoin节点的mergejoinfilter、mergejointarget,Group节点中的filter表达式时,才会考虑是否使用LLVM动态编译优化。支持count()聚集操作。除此之外,无法使用LLVM动态编译优化,具体可通过explainperformance工具进行显示。不支持生成非向量化执行路径的查询作业。
shuchaoyang
2024-11-12
81 浏览
openGauss学习笔记-225 openGauss性能调优-系统调优-配置向量化执行引擎
openGauss数据库支持行执行引擎和向量化执行引擎,分别对应行存表和列存表。一次一个batch,读取更多数据,节省IO。batch中记录较多,CPUcache命中率提升。Pipeline模式执行,函数调用次数少。一次处理一批数据,效率高。openGauss数据库所以对于分析类的复杂查询能够获得更好的查询性能。但列存表在数据插入和数据更新上表现不佳,对于存在数据频繁插入和更新的业务无法使用列存表。为了提升行存表在分析类的复杂查询上的查询性能,openGauss数据库提供行存表使用向量化执行引擎的能力。而上述操作的表达式计算、join操作、聚集操作转换为向量化执行之后,能够获得获得性能提升。
shuchaoyang
2024-11-11
80 浏览
openGauss学习笔记-224 openGauss性能调优-系统调优-数据库系统参数调优-数据库并发队列参数调优
数据库提供两种手段进行并发队列的控制,全局并发队列和局部并发队列。设置该GUC参数数值时,需要考虑系统的承受能力,主要关注内存的使用情况及IO的使用情况,综合判断。若普通用户关联资源池,并且资源池中的优先级比例不同,全局并发队列在数据库内部将使用两维队列,即优先级高低排队和同一优先级进行排队。在唤醒时,将优先唤醒高优先级队列的作业。采用资源池局部并发控制机制的目的是控制在数据库主节点上同一资源池内的并发作业数量。参数parctlmincost数值用于判断执行作业是否是复杂作业。
shuchaoyang
2024-11-10
86 浏览
openGauss学习笔记-223 openGauss性能调优-系统调优-数据库系统参数调优-数据库内存参数调优
数据库的复杂查询语句性能非常强的依赖于数据库系统内存的配置参数。数据库系统内存的配置参数主要包括逻辑内存管理的控制参数和执行算子是否下盘的参数。逻辑内存管理参数为maxprocessmemory,主要功能是控制数据库节点上可用内存的最大峰值,该参数的数值设置公式参考maxprocessmemory。所以影响执行作业可用内存参数的主要两个参数为sharedbuffers及cstorebuffers。参数workmem依据查询特点和并发来确定,一旦workmem限定的物理内存不够,算子运算数据将写入临时表空间,带来510倍的性能下降,查询响应时间从秒级下降到分钟级。对于并发场景,建议workmem串行下的workmem/物理并发数。参数workmem可以判断执行作业可下盘算子是否已使用内存量触发下盘点。当前可下盘算子有六类:Hash、Agg、Sort、Material、SetOp、WindowAgg。该参数设置通常是一个权衡,即要保证并发的吞吐量,又要保证单查询作业的性能,故需要根据实际执行情况进行调优。
shuchaoyang
2024-11-09
67 浏览
openGauss学习笔记-222 openGauss性能调优-系统调优-操作系统参数调优
在性能调优过程中,可以根据实际业务情况修改关键操作系统配置参数,以提升openGauss数据库的性能。需要用户使用gscheck检查操作系统参数结果是否和建议值保持一致,如果不一致,用户可根据实际业务情况去手动修改。修改完成后,请执行如下命令,使参数生效。配置“sysctl.conf”文件,修改网络相关参数,如果文件中没有网络相关参数,可以手动添加。
shuchaoyang
2024-11-08
84 浏览
openGauss学习笔记-221 openGauss性能调优-确定性能调优范围-分析作业是否被阻塞
数据库系统运行时,在某些业务场景下查询语句会被阻塞,导致语句运行时间过长,可以强制结束有问题的会话。postgres为需要连接的数据库名称,8000为数据库节点的端口号。gsql((openGauss1.0build290d125f)compiledat2020050802:59:43commit2143lastmr131.frompgstatactivitywjoinpglocksl1onw.pidl1.pid.andnotl1.grantedjoinpglocksl2onl1.relationl2.relation.显示类似如下信息,表示结束会话成功。Theconnectiontotheserverwaslost.Attemptingreset:Succeeded.
shuchaoyang
2024-11-07
169 浏览
openGauss学习笔记-220 openGauss性能调优-确定性能调优范围-查询最耗性能的SQL
系统中有些SQL语句运行了很长时间还没有结束,这些语句会消耗很多的系统性能,请根据本节内容查询长时间运行的SQL语句。
shuchaoyang
2024-11-06
98 浏览
openGauss学习笔记-219 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-网络
通过sar或ifconfig命令查看openGauss内节点网络使用情况,分析是否存在由于网络导致的性能瓶颈。
shuchaoyang
2024-11-05
71 浏览
openGauss学习笔记-218 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-I/O
获取openGauss节点的CPU、内存、I/O和网络资源使用情况,确认这些资源是否已被充分利用,是否存在瓶颈点。通过iostat、pidstat命令或openGauss健康检查工具查看openGauss内节点I/O繁忙度和吞吐量,分析是否存在由于I/O导致的性能瓶颈。
shuchaoyang
2024-06-30
80 浏览
openGauss学习笔记-217 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-内存
获取openGauss节点的CPU、内存、I/O和网络资源使用情况,确认这些资源是否已被充分利用,是否存在瓶颈点。
shuchaoyang
2024-06-29
75 浏览
专栏作者
暂无图片
近期活动
从MySQL到TiDB,数据库建设/迁移/运维成本及业务效益全解析,4月24日TiDB vs MySQL Meetup第三期上线
04/24 19:00 0人报名
墨天轮数据库沙龙(行业洞察系列)-运营商核心系统的数据库实践
04/24 19:30 1人报名
第25届 GOPS 全球运维大会暨研运数智化技术峰会 · 深圳站
04/25 08:30 0人报名