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

文章目录

    • openGauss学习笔记-84 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT部署服务器优化:x86
      • 84.1 BIOS
      • 84.2 操作系统环境设置
      • 84.3 网络

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
    

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

image-20230623154224858

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/92704.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用van-dialog二次封装微信小程序模态框

由于微信小程序的wx.showModal不支持富文本内容&#xff0c;无法实现更灵活的展示效果&#xff0c;故需要进行二次封装 实现思路&#xff1a;使用van-dialog以及微信小程序的rich-text实现 代码如下&#xff1a; // index.wxml <van-dialoguse-slottitle"提示"s…

基于vue+Element Table Popover 弹出框内置表格的封装

文章目录 项目场景&#xff1a;实现效果认识组件代码效果分析 封装&#xff1a;代码封装思路页面中使用 项目场景&#xff1a; 在选择数据的时候需要在已选择的数据中对比选择&#xff0c;具体就是点击一个按钮&#xff0c;弹出一个小的弹出框&#xff0c;但不像对话框那样还需…

[DS资源推荐] Data Structure 严书配套代码

下图引入自康建伟老师博客 Github地址 使用说明&#xff1a;康老师博客 使用感受&#xff1a;Orz&#xff01;非常非常非常全面&#xff01;终于能看得下去严书了…

IO学习系列之使用fgetc函数实现Linux命令“wc -l”和“wc -c”的功能

实例要求&#xff1a;使用标准IO的库函数中的fgetc函数实现Linux命令“wc -l”和“wc -c”的功能&#xff1b;实例分析&#xff1a;“wc -l xxx.txt”&#xff1a;统计当前目录下xxx.txt文件的行数&#xff1b;“wc -c xxx.txt”&#xff1a;统计当前目录下xxx.txt文件的字符数…

UWB技术在汽车智能制造的应用

返修区车辆管理项目 应用背景 在车辆总装生产线中&#xff0c;车辆下线后检测与返修是最后一个关键环节&#xff0c;整车一旦下线&#xff0c;由于流水线装配工艺、来料等原因&#xff0c;可能会出现部分整车存在瑕疵&#xff0c;进而进入返修区域待检。由于可能出现问题的不确…

专利申请说明

一、一般专利多长时间受理? 一般在一周左右下发专利受理通知书。 具体专利受理流程如下&#xff1a; 1、提供交底书&#xff0c;委托代理机构撰写申请文件&#xff0c;一般要20天到一个月时间 2、递交申请文件&#xff0c;取得专利局的受理通知书&#xff0c;确定申请日&#…

区块链(9):java区块链项目的Web服务实现之实现web服务

1 引入pom依赖 <dependency><groupId>org.eclipse.jetty</groupId><artifactId>jetty-server</artifactId><version>9.4.8.v20171121</version></dependency><dependency><groupId>org.eclipse.jetty</groupId…

SpringCloud Alibaba - 基于 FeignClient 整合 Sentinel,实现“线程隔离”和“熔断降级”

目录 一、FeignClient 整合 Sentinel 1.1、整合原因 1.2、实现步骤 1.2.1、修改 OrderService 中的 application.yml 文件 1.2.2、给 FeignClient 编写失败后的降级逻辑 二、线程隔离 2.1、线程隔离的两种方式 2.1.1、线程池隔离 2.1.2、信号量隔离&#xff08;Sentin…

【自定义类型】--- 位段、枚举、联合

&#x1f493;博客主页&#xff1a;江池俊的博客⏩收录专栏&#xff1a;C语言进阶之路&#x1f449;专栏推荐&#xff1a;✅C语言初阶之路 ✅数据结构探索&#x1f4bb;代码仓库&#xff1a;江池俊的代码仓库&#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐ 文…

c++类构造函数、拷贝函数 、 赋值函数、析构函数

类的拷贝控制 构造函数、拷贝函数 、 赋值函数、析构函数 class Sales_data{public:Sales_data() default;// 默认合成 默认构造函数Sales_data(const Sales_data& ) default;// 默认合成 拷贝构造函数Sales_data& operator(const Sales_data&);// 拷贝赋值运…

智慧公厕与传统公共厕所对比五大优势是什么?

随着科技的不断发展&#xff0c;智慧公厕成为城市建设的新亮点。与传统公共厕所相比&#xff0c;它具备许多独特优势和巨大的价值。本文将以智慧公厕领先厂家广州中期科技有限公司&#xff0c;大量精品案例项目实景实例实图&#xff0c;深入探讨智慧公厕的各个方面的特点&#…

【VINS】苹果手机采集单目相机+IMU数据离线运行VINS-Mono

0.准备工作 开个新坑&#xff0c;之前用Android手机做过离线采集数据的实验&#xff0c;这次用IPhone来测试&#xff01; 1.虚拟机配置Mac OS 下载一个Mac OS 的ios镜像&#xff0c;打开虚拟机按照跟Ubuntu差不多的方式安装&#xff0c;但是发现没有Mac OS的入口。 因为VMwa…

[C++随笔录] stack queue模拟实现

stack && queue模拟实现 stack的实现stack测试用例queue的实现queue测试用例deque stack的实现 &#x1f5e8;️stack的容器适配器应该选什么比较好呢? 首先, stack的特点是 头部入, 尾部出 ⇒ 尾插 和 尾删操作比较频繁 我们前面学过的容器有 vector 和 list, vecto…

Vue中如何进行图表绘制

Vue中的图表绘制&#xff1a;数据可视化的艺术 数据可视化是现代Web应用程序的重要组成部分之一。Vue.js作为一种流行的JavaScript框架&#xff0c;提供了许多强大的工具和库&#xff0c;用于在前端应用程序中创建各种图表和数据可视化。本文将深入探讨在Vue中进行图表绘制的方…

以太网协议介绍(ARP、UDP、ICMP、IP)

以太网协议介绍 一、ARP协议 请求&#xff1a; 应答&#xff1a; ARP协议&#xff1a; 0x0001 0x0800 6 4硬件类型&#xff1a;2个字节&#xff0c;arp协议不仅能在以太网上运行还能在其他类型的硬件上运行。以太网用1来表示&#xff1b; 协议类型&#xff1a;两字节。指的是a…

【深入了解Java String类】

目录 String类 常用方法 字符串的不可变性 String的内存分析 StringBuilder类 解释可变和不可变字符串 常用方法 面试题&#xff1a;String&#xff0c;StringBuilder&#xff0c;StringBuffer之间的区别和联系 String类的OJ练习 String类 【1】直接使用&#xff0c…

【JUC并发编程--java线程】

文章目录 1. 线程1.1 线程的使用线程运行原理 1. 线程 1.1 线程的使用 方法一&#xff0c;直接使用 Thread&#xff1a; 方法二&#xff0c;使用 Runnable 配合 Thread&#xff1a; 把【线程】和【任务】&#xff08;要执行的代码&#xff09;分开 Thread 代表线程Runnabl…

Java基础面试,String,StringBuffer,StringBuilder区别以及使用场景

简单的几句 String是final修饰的&#xff0c;不可变&#xff0c;每次操作都会产生新的对象。StringBuffer和StringBuilder都是在原对象上进行操作StringBuffer是线程安全的&#xff0c;StringBuilder是线程不安全的。StringBuffer方法是被synchronized修饰的 所以在性能方面大…

百度2024校招机器学习、数据挖掘、自然语言处理方向面试经历

本文介绍2024届秋招中&#xff0c;百度的机器学习/数据挖掘/自然语言处理工程师岗位一面的面试基本情况、提问问题、代码题目等。 8月初参与了百度提前批的机器学习/数据挖掘/自然语言处理工程师岗位面试&#xff0c;所在部门是搜索方向的。一面结束之后就知道凉了&#xff0c;…