【OceanBase 诊断调优】—— 止血良方「SQL 限流」

1. 知识点

1. 对于Oceanbase,限流的意思是限制其在单台主机上处理的并发度,因此假设对某SQL限流的并发度为1,该集群有N台机器可以执行该SQL,则实际并发度是N。

2. OceanBase 是通过在 SQL 上绑定 Outline 的方式来实现的,有一个 /*+max_concurrent(1)*/ 的 hint 。比如说你给它设置成一的时候,那在租户级别,这个 SQL 只能开一个线程跑,它的并发度只能是一。比如说这个 SQL 它的 rt 是一百毫秒的话,那它的 qps 最多只能到十。如果你想把这个 SQL 给限死的话,那你直接把并发度都改成零就可以了。

2. 集群业务限流

OceanBase 集群的业务流量主要由租户需执行的 SQL 引起,SQL 的处理速度过快会导致如下问题:

  • 活跃内存来不及被转储。

  • 写类型的 SQL 处理过快会导致内存短期压力过大。

通过限制 SQL 的并发执行量可降低 SQL 处理速度,从而达到为 OceanBase 集群限流的目的,在资源不足或业务流量大的时候避免上述问题的出现。

操作步骤

  1. 找到该 OceanBase 集群执行频率高的 SQL。

    1. 登录 OCP。

    2. 在 租户 界面的 租户列表 中找到该集群的租户,并单击租户名。

      系统默认进入 总览 页。

    3. 选择 SQL 诊断 ,随后选择 TopSQL 页签。

    4. 根据业务情况自定义时间后,找到执行次数多的 SQL 文本,并记录这些文本和 SQL 文本的 ID。

    说明

    记录下来的文本将会被限制执行并发数,具体需要限制的高执行频率的 SQL 文本,需根据业务自行判断。比如以下场景:

    • 若业务写比查询更重要,则建议限制高频查询的 SQL 并发数。
    • 若写导致内存压力大,则建议限制高频写的 SQL 并发数。
  2. 为这些 SQL 增加并发执行限制的 Hint。

    1. 登录到该 SQL 执行的数据库。

    2. 为这些 SQL 文本增加 HINT 索引 /*+max_concurrent(1)*/,该索引将限制这个 SQL 文本的并发数为 1,从而限制该 SQL 的执行速度。可参考 绑定索引 或下述语句进行限流。

      #otl_idx 为索引名,需自定义;SQLID 为 SQL 文本的 ID。
      CREATE OUTLINE otl_idx_c2 ON "SQLID" USING HINT  
      /*+max_concurrent(1)*/ ;#举例如下:
      create outline  otl_name  on "ED570339F2C856BA96008A29EDF04C74" using hint  
      /*+max_concurrent(1)*/  
      ;
      

      通过如上语句,ID 为 "ED570339F2C856BA96008A29EDF04C74" 的 SQL 文本在单台 OBServer 节点上的执行并发数则被限制为 1。

    3. 逐个将步骤 1 中记录的 SQL 文本都按照 2.1 ~ 2.2 的方法加上并发数的限制。

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

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

相关文章

excel使用

上中下旬的逾期金额 步骤: 1、先判断上中下旬的时间范围 2、根据城市和时间求和,算出对应的逾期金额 问题:当从左插入列时,列的格式与原本一致,当我们想看数值时,发现为日期 解决:在开始-数据格…

MySQL算数运算符基础:详解与入门

目录 背景: 过程: 1.加法与减法运算符 1.2扩展: 1.3运算结果得出结论 : 2.乘法和除法运算 ​2.1练习: 2.2运算结果得出结论 : 3.求模取余运算符 3.1练习: 总结: 背景&a…

2024年AI办公工具API:高效办公的智能选择

在2024年,AI技术已经深入到我们工作生活的方方面面,极大地提高了办公效率和质量。这些工具通过集成先进的算法和模型,使得日常任务自动化、数据分析智能化、内容创作高效化。以下是2024年最受欢迎的AI办公工具API,它们正在重新定义…

力扣 LeetCode 142. 环形链表II(Day2:链表)

解题思路&#xff1a; 使用set判断是否重复添加&#xff0c;如果set加入不进去证明之前到达过该节点&#xff0c;有环 public class Solution {public ListNode detectCycle(ListNode head) {Set<ListNode> set new HashSet<>();ListNode cur head;while (cur …

基于Spring Boot的电子商务系统设计

5 系统实现 系统实现部分就是将系统分析&#xff0c;系统设计部分的内容通过编码进行功能实现&#xff0c;以一个实际应用系统的形式展示系统分析与系统设计的结果。前面提到的系统分析&#xff0c;系统设计最主要还是进行功能&#xff0c;系统操作逻辑的设计&#xff0c;也包括…

使用 Vue 配合豆包MarsCode 实现“小恐龙酷跑“小游戏

作者&#xff1a;BLACK595 “小恐龙酷跑”&#xff0c;它是一款有趣的离线游戏&#xff0c;是Google给Chrome浏览器加的一个有趣的彩蛋。当我们浏览器断网时一只像素小恐龙便会出来提示断网。许多人认为这只是一个可爱的小图标&#xff0c; 但当我们按下空格后&#xff0c;小恐…

Attention is all you need详细解读

transformer目的是解决NLP中使用RNN不能并行计算问题。 Encoder-Decoder, Attention, Transformer 三者关系 1.基础储备 &#xff08;1&#xff09;CV基础知识 1.首先拿CV中的分类任务来说&#xff0c;训练前我们会有以下几个常见步骤&#xff1a; 2.获取图片 3.定义待分类的类…

面向对象的需求分析和设计(一)

[toc] 1. 引言 前一篇文章《我对需求分析的理解》提到了面向对象分析和设计&#xff0c;正好最近又重新有重点的读了谭云杰著的《Think in UML》&#xff0c;感觉有必要写把书中一些核心内容观点以及自己的想法整理出来&#xff0c;一是方便自己日后的复习&#xff0c;另外也…

Window下PHP安装最新sg11(php5.3-php8.3)

链接: https://pan.baidu.com/s/10yyqTJdwH_oQJnQtWcwIeA 提取码: qz8y 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦 (链接失效联系L88467872) 1.下载后解压文件&#xff0c;将对应版本的ixed.xx.win文件放进php对应的ext目录下&#xff0c;如图所示 2.修改ph…

基于Spring Boot与Redis的令牌主动失效机制实现

目录 前言1. 项目结构和依赖配置1.1 项目依赖配置1.2 Redis连接配置 2. 令牌主动失效机制的实现流程2.1 登录成功后将令牌存储到Redis中2.2 使用拦截器验证令牌2.3 用户修改密码后删除旧令牌 3. Redis的配置与测试4. 可能的扩展与优化结语 前言 在现代Web系统中&#xff0c;用…

Linux学习笔记之组管理和权限管理

组管理 文件/目录 所有者 一般文件所有者是文件的创建者&#xff0c;谁创建了该文件&#xff0c;就自然成为该文件的所有者 ls -ahl &#xff08;查看文件的所有者&#xff09; chown 用户名 文件名 &#xff08;修改文件所有者&#xff09; 文件/目录 所在组 当某个用户…

『黄河遗韵』数字非遗馆的守护之旅

创意定位 腾讯云推出的以“守护黄河文明&#xff0c;探索数字非遗馆”为主题的创意H5作品&#xff0c;通过长卷寻宝VR展馆形式&#xff0c;描绘了黄河文明中的非物质文化遗产&#xff0c;旨在唤起公众对黄河文明的保护意识&#xff0c;并邀请大家参与互动&#xff0c;深入了解…

前端监控与埋点 全总结

一、概念 前端埋点是指在网页或者应用程序中插入特定的代码&#xff0c;用于收集用户的行为数据并发送给服务器进行分析。这些数据可以包括用户的点击、浏览、输入等操作&#xff0c;帮助开发者了解用户的在其网站中的行为&#xff0c;从而进行针对性的优化和改进。 前端埋点…

全面介绍软件安全测试分类,安全测试方法、安全防护技术、安全测试流程

一、软件系统设计开发运行安全 1、注重OpenSource组件安全检查和版本更新&#xff08;black duck&#xff09; 现在很多云、云服务器都是由开源的组件去搭成的&#xff0c;对于OpenSource组件应该去做一些安全检查和版本更新&#xff0c;尤其是版本管理&#xff0c;定期对在运…

十、文件上传和下载

文章目录 1. 文件下载2. 文件上传 1. 文件下载 使用ResponseEntity实现下载文件的功能 2. 文件上传

Springboot整合Prometheus+grafana实现系统监控

前言 Prometheus是一个开源的服务监控系统和时序数据库&#xff0c;它提供了强大的功能和灵活的架构&#xff0c;是目前主流的监控和管理应用系统的工具。 而Grafana是一个开源的数据可视化工具&#xff0c;与Prometheus集成&#xff0c;就可以可视化地监控系统的各个指标。 …

新增支持Elasticsearch数据源,支持自定义在线地图风格,DataEase开源BI工具v2.10.2 LTS发布

2024年11月11日&#xff0c;人人可用的开源BI工具DataEase正式发布v2.10.2 LTS版本。 这一版本的功能变动包括&#xff1a;数据源方面&#xff0c;新增了对Elasticsearch数据源的支持&#xff1b;图表方面&#xff0c;对地图类和表格类图表进行了功能增强和优化&#xff0c;增…

常用数字器件的描述-时序逻辑器件的描述

目录 锁存器与触发器 寄存器与移位寄存器 分频器及其应用 偶分频器 奇分频器 半整数分频器 分频器的应用 锁存器与触发器 锁存器与触发器是两种最基本的存储电路。 锁存器是电平敏感器件&#xff0c;而触发器是边沿触发器件。 为了使用灵活方便&#xff0c;商品化的锁…

今天出了10个4声母 .com

价格蛮低的 &#xff0c;VJ.VT.Q.Q 十个 遥想当年6.5万收的5个四声母.com&#xff0c;上面有2个就在下图中呀&#xff0c;赔大发了

【JAVA】使用IDEA创建maven聚合项目

【JAVA】使用IDEA创建maven聚合项目 1.效果图 2.创建父模块项目 2.1删除父模块下面的src目录以及不需要的maven依赖 3创建子模块项目 3.1右击父模块项目选择Module… 3.2创建子模块 3.3删除子模块下不需要的maven依赖 4.子模块创建完成后引入SpringBoot依赖启动项目