本文描述了openGauss数据库基于Taishan服务器,在openEuler操作系统上,为了达到数据库的极致性能,所依赖的关键系统级调优配置。
硬件规格:
CPU: 鲲鹏-920(1620) ARM aarch64 64核 * 2
内存: >=512G
磁盘: Nvme SSD * 4(每块大于1TB)
网卡: 1822网卡 万兆网卡 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (4*25GE) (rev 45)
软件规格:
操作系统: openEuler 20.03 (LTS)
数据库: openGauss 1.0.0
Benchmark: benchmarksql-5.0
jdk: jdk1.8.0_212
ant: apache-ant-1.9.15
文章通过配置BIOS、操作系统、文件系统、网络、绑核,构造TPCC测试数据等几个方面来对数据库进行调优。- 依赖三方工具 jdk ant benchmark - linux工具 htop iostat.
benchmark htop iostat工具的安装使用请参照:benchmark使用。(https://opengauss.org/zh/blogs/blogs.html?post/optimize/opengauss-tpcc/)
BIOS配置
登录服务器管理系统,重启服务器进入BIOS界面,修改BIOS相关配置并重启 (服务器管理系统以实际为准)。
1.机器自检后,会提示启动选项
2.按“Del”键,进入BIOS
3.输入BIOS密码
4.恢复出厂设置
按下“F9”,恢复出厂设置
重要:因为现有的BIOS可能被改动过诸多默认设置,为保险起见,建议首先恢复出厂设置。
5. 修改相关BIOS设置
修改包括下面三项配置
# BIOS->Advanced->MISC Config,配置Support Smmu为Disabled
# BIOS->Advanced->MISC Config,配置CPU Prefetching Configuration为Disabled
# BIOS->Advanced->Memory Config,配置Die Interleaving为Disable
6. 保存相关BIOS设置,并重启
按“F10”保存并退出,重新启动系统。
作系统配置
优化操作系统相关配置
Irq balance关闭:为避免gaussdb进程与客户端抢用CPU,导致CPU使用不均衡。如果htop呈现出部分CPU压力很大,部分CPU很空闲时需要考虑是否关闭了irqbalance.
service irqbalance stop
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队列调度机制设置
文件系统配置
修改xfs文件系统blocksize为8K
<1> 确认nvme盘对应加载点的现有blocksize 下面命令查看当前挂载的nvme盘
df -h | grep nvme
/dev/nvme0n1 3.7T 2.6