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;
https://i-blog.csdnimg.cn/direct/6f6d76e815ca490289b1bd3b6720740a.png
5.work_mem
内部排序操纵和Hash表在开始写入临时磁盘文件之前使用的内存巨细:work_mem
https://i-blog.csdnimg.cn/direct/95c1e1726cd9425395aeb960ab739572.png
二、逻辑内存管理模块
逻辑内存管理模块参数:enable_memory_limit
设置enable_memory_limit为true,即启用内存管理模块,可用于限制进程的内存使用。当其他参数配置不满足数据库启动条件时,则启动失败,并给出提示。
[*] 用户设置enable_memory_limit=true,但其他参数配置不满足条件,则数据库启动失败,并提示原因:
https://i-blog.csdnimg.cn/direct/6966de7aa67c49e5b8e2c1d8ab1ebd1f.png
[*] 如果用户设置enable_memory_limit=false, 启动成功并且提示风险
[*]https://i-blog.csdnimg.cn/direct/e76aba75eb8b4734846486ffe4be404e.png
三、IO参数调优
1.pagewriter_sleep
增量checkpoint模式下,控制后端写线程pagewriter刷页频率,当脏页占据shared_buffers的比例到达dirty_page_percent_max时,每批脏页数量以设定的max_io_capacity计算出的值刷页。
pagewriter线程刷页用于推进recovery点,设置时间较长时,会导致recovery点推进慢,宕机启动时间长和xlog日记堆积问题。
为降低RTO,减少日记膨胀,必要将pagewriter_sleep得当调小,加快页面刷盘,推进recovery点,促进日记接纳。
https://i-blog.csdnimg.cn/direct/ee29d11a944547d490f20ad4f595961c.png
2.bgwriter_delay
增量checkpoint模式下,控制后端写线程bgwriter刷页频率,当前空闲缓冲页面个数占据shared_buffers的比例低于candidate_buf_percent_target时,每批脏页数量以设定的max_io_capacity计算出的值刷页。
bgwriter线程将可以淘汰的页面刷盘,加速业务实行时,页面占用槽位的速度,时间过长会影响性能。
为了提升业务性能时,得当调小bgwriter_delay的时间
https://i-blog.csdnimg.cn/direct/009641f05c86456597de5f6dddea0fe1.png
3.max_io_capacity
设置后端写线程(pagewriter线程和bgwriter线程)批量刷页每秒的I/O上限,必要根据具体业务场景和呆板磁盘I/O本事举行设置。
要求RTO很短时间或者数据量比共享内存大多倍的环境,业务访问数据量又是随机访问时,该值不宜过小。该参数设置较小会减小后端写线程刷页个数,如果业务触发页面淘汰多时,该值设置小会影响业务。
max_io_capacity需依据随机写I/O本事举行最优设置。
https://i-blog.csdnimg.cn/direct/c1967766519847b7a3b6f242b9a73c8e.png
四、常见问题
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。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]