暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss---MOT部署---MOT服务器优化:x86

576

通常情况下,数据库由以下组件绑定:

  • CPU:更快的CPU可以加速任何CPU绑定的数据库。
  • 磁盘:高速SSD/NVME可加速任何I/O绑定数据库。
  • 网络:更快的网络可以加速任何SQL*Net绑定数据库。

除以上内容外,以下通用服务器设置默认使用,可能会明显影响数据库的性能。

MOT性能调优是确保快速的应用程序功能和数据检索的关键步骤。MOT支持最新的硬件,因此调整每个系统以达到最大吞吐量是极为重要的。

以下是用于优化在英特尔x86服务器上运行MOT时的建议配置。这些设置是高吞吐量工作负载的最佳选择。

BIOS

Hyper Threading设置为ON。

强烈建议打开超线程(HT=ON)。

建议在MOT上运行OLTP工作负载时打开超线程。当使用超线程时,某些OLTP工作负载显示高达40%的性能增益。

操作系统环境设置

NUMA

禁用NUMA平衡,如下所示。MOT以极其高效的NUMA-aware方式进行内存管理,远远超过操作系统使用的默认方法。

echo 0 > /proc/sys/kernel/numa_balancing

服务

禁用如下服务:

service irqbalance stop           # MANADATORY 
service sysmonitor stop           # OPTIONAL, performance  
service rsyslog stop       # OPTIONAL, performance

调优服务

以下为必填项。

服务器必须运行throughput-performance配置文件。

[...]$ tuned-adm profile throughput-performance 

throughput-performance配置文件是广泛适用的调优,它为各种常见服务器工作负载提供卓越的性能。

其他不太适合openGauss和MOT服务器的配置可能会影响MOT的整体性能,包括:平衡配置、桌面配置、延迟性能配置、网络延迟配置、网络吞吐量配置和节能配置。

系统命令

推荐使用下列操作系统设置以获得最佳性能。

在/etc/sysctl.conf文件中添加如下配置,然后执行sysctl -p命令:

net.ipv4.ip_local_port_range = 9000 65535 
kernel.sysrq = 1 
kernel.panic_on_oops = 1 
kernel.panic = 5 
kernel.hung_task_timeout_secs = 3600 
kernel.hung_task_panic = 1 
vm.oom_dump_tasks = 1 
kernel.softlockup_panic = 1 
fs.file-max = 640000 
kernel.msgmnb = 7000000 
kernel.sched_min_granularity_ns = 10000000 
kernel.sched_wakeup_granularity_ns = 15000000 
kernel.numa_balancing=0 
vm.max_map_count = 1048576 
net.ipv4.tcp_max_tw_buckets = 10000 
net.ipv4.tcp_tw_reuse = 1 
net.ipv4.tcp_tw_recycle = 1 
net.ipv4.tcp_keepalive_time = 30 
net.ipv4.tcp_keepalive_probes = 9 
net.ipv4.tcp_keepalive_intvl = 30 
net.ipv4.tcp_retries2 = 80 
kernel.sem = 250 6400000 1000 25600 
net.core.wmem_max = 21299200 
net.core.rmem_max = 21299200 
net.core.wmem_default = 21299200 
net.core.rmem_default = 21299200 
#net.sctp.sctp_mem = 94500000 915000000 927000000 
#net.sctp.sctp_rmem = 8192 250000 16777216 
#net.sctp.sctp_wmem = 8192 250000 16777216 
net.ipv4.tcp_rmem = 8192 250000 16777216 
net.ipv4.tcp_wmem = 8192 250000 16777216 
net.core.somaxconn = 65535 
vm.min_free_kbytes = 26351629 
net.core.netdev_max_backlog = 65535 
net.ipv4.tcp_max_syn_backlog = 65535 
#net.sctp.addip_enable = 0 
net.ipv4.tcp_syncookies = 1 
vm.overcommit_memory = 0 
net.ipv4.tcp_retries1 = 5 
net.ipv4.tcp_syn_retries = 5

按如下方式修改/etc/security/limits.conf对应部分:

<user> soft nofile 100000 
<user> hard nofile 100000

软限制和硬限制设置可指定一个进程同时打开的文件数量。软限制可由各自运行这些限制的进程进行更改,直至达到硬限制值。

磁盘/SSD

下面以数据库同步提交模式为例,介绍如何保证磁盘读写性能适合数据库同步提交模式。

按如下方式运行磁盘/SSD性能测试:

[...]$ sync; dd if=/dev/zero of=testfile bs=1M count=1024; sync 
1024+0 records in 
1024+0 records out 
1073741824 bytes (1.1 GB) copied, 1.36034 s, 789 MB/s 

当磁盘带宽明显低于789MB/s时,可能会造成openGauss性能瓶颈,尤其是造成MOT性能瓶颈。

网络

需要使用10Gbps以上网络。

运行iperf命令进行验证:

Server side: iperf -s 
Client side: iperf -c <IP>

rc.local:网卡调优

以下可选设置对性能有显著影响:

将https://gist.github.com/SaveTheRbtz/8875474下的set_irq_privacy.sh文件拷贝到/var/scripts/目录下。
进入/etc/rc.d/rc.local,执行chmod命令,确保在boot时执行以下脚本:

'chmod +x /etc/rc.d/rc.local'  
var/scripts/set_irq_affinity.sh -x all <DEVNAME> 
ethtool -K <DEVNAME> gro off 
ethtool -C <DEVNAME> adaptive-rx on adaptive-tx on 
Replace <DEVNAME> with the network card, i.e. ens5f1

官方地址文档:https://opengauss.org/zh/docs/1.1.0/docs/Developerguide/MOT%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BC%98%E5%8C%96-x86.html

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论