首页 > 数据库 >openGauss学习笔记-84 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT部署服务器优化:x86

openGauss学习笔记-84 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT部署服务器优化:x86

时间:2023-09-29 20:31:37浏览次数:47  
标签:kernel sctp tcp MOT ipv4 openGauss net 内存

openGauss学习笔记-84 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT部署服务器优化:x86

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

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

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

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

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

84.1 BIOS

  • Hyper Threading设置为ON。

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

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

84.2 操作系统环境设置

  • 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性能瓶颈。

84.3 网络

需要使用10Gbps以上网络。

运行iperf命令进行验证:

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

rc.local:网卡调优

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

  1. 将https://gist.github.com/SaveTheRbtz/8875474下的set_irq_privacy.sh文件拷贝到/var/scripts/目录下。

  2. 进入/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
    

标签:kernel,sctp,tcp,MOT,ipv4,openGauss,net,内存
From: https://blog.51cto.com/shuchaoyang/7652414

相关文章

  • QT QPixmap QImage内存泄漏
    无论是在代码中还是在UI中设置icon都会产生内存泄漏大概看了下,好像是QPixmap的data_ptr的引用计数,到不了1/0(查看引用计数,释放后,理论上应回到1)试了下,仅以下两种方式不会产生内存泄漏:1、从XPM加载:img=QPixmap(result);  //result为  staticconstchar*result[]={。......
  • 内存不足录音很危险
    上午刚查了一顿iPhone录音到满内存保存之后文件丢失,中午iqoo录音看的58min点击保存之后,时间长度变为00:00算是验证了一遍,录音录到满内存,文件丢失看来几乎必然猜测是录音到中间时没有内存,所以58min只保存了1.48MB,而且不能直接播放应该是没有文件结尾,不过明明内存满了但一直显示正......
  • openGauss学习笔记-83 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT使用内
    openGauss学习笔记-83openGauss数据库管理-内存优化表MOT管理-内存表特性-MOT使用内存和存储规划本节描述了为满足特定应用程序需求,在评估、估计和规划内存和存储容量数量时,需要注意的事项和准则,以及影响所需内存数量的各种数据,例如计划表的数据和索引大小、维持事务管理的内存......
  • Java内存分析工具实践之Spark客户端线程死锁
    ......
  • C++内存模型
    目录C++内存模型存储持续性内存分配位置链接性作用域对于函数C++内存模型存储持续性C++存储持续性有以下类别:自动存储持续性:在函数定义中声明的变量(包括函数参数)。静态存储持续性:在函数定义外定义的变量和使用关键字static定义的变量。线程存储持续性(C++11):使用关键字thread......
  • Java内存分析工具实践之resourcemanager内存泄漏排查
    ......
  • nginx.conf被删除后如何通过内存导出nginx.conf文件
    问题上午同事反馈,nginx下conf/nginx.conf文件是空的.解决m1:通过nginx内存转储出来nginx.conf01、查看nginxmaster进程02、查看内存映射是否存在heap类型cat/proc/x/maps|grepheap(空空如也)03、如果存在heap类型则gdb转储堆文件yuminstall-ygdbgdb--pidxd......
  • openGauss学习笔记-82 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT使用准
    openGauss学习笔记-82openGauss数据库管理-内存优化表MOT管理-内存表特性-MOT使用准备前提条件以下是使用openGaussMOT的软硬件前提条件。82.1硬件支持MOT支持最新硬件和现有硬件平台,支持x86架构和华为鲲鹏Arm架构。MOT与openGauss数据库支持的硬件完全对齐。更多信息请参......
  • Android 基于共享内存跨进程实时传输大量图片
     aidl传输文件有大小1M限制,单次传输不适合传递大数据,可以使用aidl传递共享内存引用ParcelFileDescriptor方式传递图片信息。具体实现如下一、service端1.aidl文件IIpcService.aidl定义,这里主要用到pfd参数interfaceIIpcService{/***Demonstratessomebasictypes......
  • C++内存管理
    primitives(基本工具)对比malloc,free不可重载c函数new,delete不可重载C++表达式::operatornew(),::operatordelete()可重载C++函数allocator<T>::allocate(),allocator<T>::deallocate()可自由设计并以之搭配任何容器C++标准......