ITPub博客

首页 > 数据库 > 数据库开发技术 > openGauss学习笔记-280 openGauss性能调优-实际调优案例09-修改启动参数解决TPCC大幅度波动

openGauss学习笔记-280 openGauss性能调优-实际调优案例09-修改启动参数解决TPCC大幅度波动

原创 数据库开发技术 作者:shuchaoyang 时间:2024-01-27 07:00:00 0 删除 编辑

openGauss学习笔记-280 openGauss性能调优-实际调优案例09-修改启动参数解决TPCC大幅度波动280.1 现象描述280.2 优化分析

openGauss学习笔记-280 openGauss性能调优-实际调优案例09-修改启动参数解决TPCC大幅度波动

280.1 现象描述

openGauss数据库在4路鲲鹏服务器单机场景下,TPCC 多数时候在200万左右,一周偶尔一次达到230万以上,波动幅度非常大。

其中openGauss数据库的启动命令如下:

# $datadir为数据库节点路径
numactl -C 1-28,32-60,64-92,96-124,128-156,160-188,192-220,224-252 gs_ctl start -D $datadir  -Z single_node

280.2 优化分析

在4路鲲鹏服务器单机场景下,CPU 能力增强,xlog 落盘速率成为瓶颈。服务器跨 numa 节点访问内存的代价如下所示:

node distances:
node   0   1   2   3   4   5   6   7
 0:  10  11  24  25  24  25  24  25
 1:  11  10  25  32  25  32  25  32
 2:  24  25  10  11  24  25  24  25
 3:  25  32  11  10  25  32  25  32
 4:  24  25  24  25  10  11  24  25
 5:  25  32  25  32  11  10  25  32
 6:  24  25  24  25  24  25  10  11
 7:  25  32  25  32  25  32  11  10

可以看到不同节点间的内存读写代价,差异是非常大的。因此,将相关的操作分配到同一个 numa 节点中可以显著提高内存访问速率。

在此场景中,性能瓶颈为 xlog,而 xlog 所在的磁盘挂载在 numa node 0 节点,因此将 xlog 相关的内存优先分配到 node 0 节点下,可以显著提高 xlog 的写速率。

其中,查看nvme盘所在numa节点的命令如下:

# nvme0 为实际盘符的编号
cat /sys/class/nvme/nvme0/device/numa_node

优化后的数据库启动命令如下:

numactl -C 1-28,32-60,64-92,96-124,128-156,160-188,192-220,224-252 --preferred=0 gs_ctl restart -D $datadir  -Z single_node

通过 numactl 命令的 preferred 参数指定程序初始化分配 xlog 内存时的优先分配节点,解决 TPCC 大幅度波动的问题。


👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!


PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我吧!


原文作者:超哥的IT私房菜;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
专注于IT系统集成、运维、架构二十年的IT职场老兵,拥有CCNA、OCA、OCP、PGCA、PGCE认证证书,公众号:超哥的IT私房菜,知识星球:超哥的IT私房菜,目前是多家IT厂商的咨询顾问。

注册时间:2021-08-27

  • 博文量
    552
  • 访问量
    303622