MOT服务器优化:x86

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

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

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

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

    • Hyper Threading设置为ON。

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

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

    • NUMA

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

    • 服务

      1. service sysmonitor stop # OPTIONAL, performance
      2. service rsyslog stop # OPTIONAL, performance
    • 调优服务

      以下为必填项。

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

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

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

    • 系统命令

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

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

        1. net.ipv4.ip_local_port_range = 9000 65535
        2. kernel.sysrq = 1
        3. kernel.panic_on_oops = 1
        4. kernel.panic = 5
        5. kernel.hung_task_timeout_secs = 3600
        6. kernel.hung_task_panic = 1
        7. vm.oom_dump_tasks = 1
        8. fs.file-max = 640000
        9. kernel.msgmnb = 7000000
        10. kernel.sched_min_granularity_ns = 10000000
        11. kernel.sched_wakeup_granularity_ns = 15000000
        12. kernel.numa_balancing=0
        13. vm.max_map_count = 1048576
        14. net.ipv4.tcp_tw_reuse = 1
        15. net.ipv4.tcp_tw_recycle = 1
        16. net.ipv4.tcp_keepalive_time = 30
        17. net.ipv4.tcp_keepalive_probes = 9
        18. net.ipv4.tcp_keepalive_intvl = 30
        19. net.ipv4.tcp_retries2 = 80
        20. kernel.sem = 250 6400000 1000 25600
        21. net.core.wmem_max = 21299200
        22. net.core.rmem_max = 21299200
        23. net.core.wmem_default = 21299200
        24. net.core.rmem_default = 21299200
        25. #net.sctp.sctp_mem = 94500000 915000000 927000000
        26. #net.sctp.sctp_rmem = 8192 250000 16777216
        27. #net.sctp.sctp_wmem = 8192 250000 16777216
        28. net.ipv4.tcp_rmem = 8192 250000 16777216
        29. vm.min_free_kbytes = 26351629
        30. net.core.netdev_max_backlog = 65535
        31. net.ipv4.tcp_max_syn_backlog = 65535
        32. #net.sctp.addip_enable = 0
        33. net.ipv4.tcp_syncookies = 1
        34. vm.overcommit_memory = 0
        35. net.ipv4.tcp_retries1 = 5
        36. net.ipv4.tcp_syn_retries = 5
      • 按如下方式修改/etc/security/limits.conf对应部分:

    • 磁盘/SSD

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

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

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

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

    需要使用10Gbps以上网络。

    运行iperf命令进行验证:

    rc.local:网卡调优

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

    1. 将下的set_irq_privacy.sh文件拷贝到/var/scripts/目录下。

      1. 'chmod +x /etc/rc.d/rc.local'
      2. var/scripts/set_irq_affinity.sh -x all <DEVNAME>
      3. ethtool -K <DEVNAME> gro off
      4. ethtool -C <DEVNAME> adaptive-rx on adaptive-tx on