openGauss SQL调优指南:TPCC性能调优测试指导

TPCC性能调优测试指导概述

本章节主要介绍openGauss数据库内核基于鲲鹏服务器和openEuler操作系统,为了达到最佳TPMC性能所依赖的关键系统级调优。

硬件要求

  • 服务器数量:2台鲲鹏920服务器(1台用于数据库服务器,1台用于TPCC客户端)。
  • 服务器硬件规格:
    • Memory:大于512GB。
    • Free Disk:4块NVME硬盘,每块容量大于1TB。
    • 网卡:Hi1822千兆网卡,光纤互连。

操作系统要求

操作系统要求:openEuler-20.03-LTS(aarch64 架构)

软件依赖

表 1 软件依赖要求

所需软件

建议版本

numactl

--

jdk

1.8.0-242

ant

1.10.5

htop

--

前置软件安装

  1. 安装jdk。

    a.下载并安装jdk。

    b. 配置环境变量,具体如下:

    export JAVA_HOME=your_path/jdk1.8.0_232 
    export JRE_HOME=${JAVA_HOME}/jre 
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/jre 
    export PATH=${PATH}:${JAVA_HOME}/bin 
    export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
    
  2. 安装numactl。

    执行如下命令安装numactl。

    yum install –y numactl
    
  3. 安装ant。

    a. 执行如下命令安装ant。

    yum install –y ant
    

    b. 设置环境变量,修改文件/etc/profile,添加下面两行。

    export ANT_HOME=/usr/share/ant/ 
    export PATH=${PATH}:${ANT_HOME}/bin
    

     说明: 可能对于不同的操作系统ANT_HOME的安装路径不一样,可以通过find命令找打其对应的安装路径。

  4. 安装htop工具,具体请参见htop - an interactive process viewer

BIOS配置

  1. 恢复BIOS出厂设置。

  2. 修改相关BIOS设置,如下所示:

    a. BIOS>Advanced>MISC Config,配置Support Smmu为Disabled,如图1所示。

    图 1 修改BIOS设置(1)

    b.BIOS>Advanced>MISC Config,配置CPU Prefetching Configuration为Disabled,如图1所示。

    c.BIOS>Advanced>Memory Config,配置Die Interleaving为Disable,如图2所示。

    图 2 修改BIOS设置(2)

  3. 重启操作系统。

 

 

操作系统配置

1.安装openEuler操作系统,具体请参见《openEuler 安装指南》

2.修改操作系统内核PAGESIZE为64KB。

  • a. 查看操作系统内核PAGESIZE的值。 以root用户登录操作系统,执行如下命令查看PAGESIZE的值。
getconf PAGESIZE

图1所示,表示操作系统内核PAGESIZE为64KB。 图 1 查看操作系统内核PAGESIZE的值

3.关闭CPU中断的服务irqbalance。irqbalance负责均衡CPU中断,避免单CPU处理中断负载过重。

以root用户登录操作系统,执行如下命令。

service irqbalance stop   # 关闭Irq balance。
echo 0 > /proc/sys/kernel/numa_balancing    
echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled 
echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag 
echo none > /sys/block/nvme*n*/queue/scheduler  # 针对nvme磁盘io队列调度机制设置。

 

 

文件系统配置

为了提升数据库的IO效率,我们使用NVME盘作为数据盘,需要采用的文件系统类型为xfs,数据块大小为8KB。具体操作如下:

  1. 查看当前数据盘的文件系统类型。

    a. 执行如下命令查看当前挂载的nvme盘。

    df -h | grep nvme
    

    结果如下。

    /dev/nvme0n1                3.7T  2.6T  1.2T  69% /data1 
    /dev/nvme1n1                3.7T  1.9T  1.8T  51% /data2 
    /dev/nvme2n1                3.7T  2.2T  1.6T  59% /data3 
    /dev/nvme3n1                3.7T  1.4T  2.3T  39% /data4
    

    b.执行如下命令查看nvme盘的信息。

    xfs_info
    

    例如执行命令xfs_info /data1,如图1所示,block的大小正好为8KB,不需要修改;若block不满足8kB大小的要求,需要重新格式化,格式化前请将数据进行备份。

    图 1 查看nvme盘的信息

  2. 对于需要修改的磁盘,备份所需的数据至其他磁盘或其他服务器。

  3. 格式化磁盘为xfs文件系统。

    以/dev/nvme0n1盘,加载路径为/data1为例,参考命令如下。此步骤需根据实际环境情况进行操作。

    umount /data1 
    mkfs.xfs -b size=8192 /dev/nvme0n1 -f 
    mount /dev/nvme0n1 /data1
    
  4. 执行步骤一,确认blocksize是否已修改为8KB。

 

网络配置

数据库服务端及客户端绑核

  1. 安装openGauss数据库,具体操作请参考《安装指南》。

  2. 停止数据库,具体操作请参考《数据库运维指南》中的“启停openGauss”章节。

  3. 使用gs_guc工具修改数据库端口、IP等,gs_guc的使用请参考《工具与命令参考》中的“服务端工具>gs_guc”章节。

  4. 使用gs_guc工具设置如下参数。

    advance_xlog_file_num = 100
    numa_distribute_mode = 'all'
    thread_pool_attr = '464,4,(cpubind:1-27,32-59,64-91,96-123)'
    xloginsert_locks = 16
    wal_writer_cpu=0
    wal_file_init_num = 20
    xlog_idle_flushes_before_sleep = 500000000
    pagewriter_sleep = 10ms
    
  5. 执行如下命令以绑核方式启动服务端数据库。

    numactl -C 1-27,32-59,64-91,96-123 gaussdb --single_node -D /data1/gaussdata  -p 3625 &
    

    其中0核用于wal_writer、1-27、32-59、64-91、96-123表示使用111个核运行TPCC程序,其余的16个核用来处理服务端的网络中断。

  6. 执行如下命令,将客户端CPU的48个核与网卡中断队列进行绑定:

    sh bind_net_irq.sh  48

 

 

  • 28
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值