烂sql导致clickhouse集群memory_tracking直线飙升触发熔断

版 本 v e r s i o n   1 9 . 1 7 . 4 . 1 1     c l i c k h o u s e   集 群 , 主 要 存 日 志 数 据 与 监 控 数 据 。 架 构 为 4 台 主 机 1 2 个 实 例 数 , 数 据 为 单 副 本 。

近 日 , 该 c l i c k h o u s e 集 群 有 一 台 物 理 机 的 硬 件 ( 电 池 ) 损 坏 , 损 坏 的 硬 件 完 成 更 换 后 , 就 有 人 反 馈 数 据 查 询 异 常 , 报 D B : : E x c e p t i o n :   M e m o r y   l i m i t   ( t o t a l )   e x c e e d e d :   w o u l d   u s e   1 1 1 . 7 6   G i B   ( a t t e m p t   t o   a l l o c a t e   c h u n k   o f   5 7 6 6 8 8 0   b y t e s ) ,   m a x i m u m :   1 1 1 . 7 6   G i B  

报 错 指 向 内 存 , 看 查   c l i c k h o u s e _ m e m o r y _ t r a c k i n g   内 存 的 使 用 情 况 , 2 0 2 3 . 0 6 . 2 6   1 7 : 5 7   左 右   c l i c k h o u s e   集 群 各 个 节 点 c l i c k h o u s e _ m e m o r y _ t r a c k i n g 直 线 上 升 ( 除 了 硬 件 异 常 的 节 点 几 乎 始 终 为 0 ) , 最 终 迫 近 单 机 最 大 的 内 存 使 用 量   m a x _ m e m o r y _ u s a g e _ f o r _ a l l _ q u e r i e   的   1 2 0 G , 当 总 内 存 使 用 超 过 1 2 0 G 后 触 发 熔 断 , 中 断 请 求 , 也 就 是 上 文 提 到 的   M e m o r y   l i m i t   ( t o t a l )   e x c e e d e d

 

  c l i c k h o u s e _ g l o b a l _ t h r e a d _ a c t i v e   正 常 情 况 下 保 持 为 十 位 数 , 异 常 飙 升 至 5 千 多

 

异 常 时 间 段 c l i c k h o u s e _ q u e r y   请 求 也 有 波 动

 

2023-06-26 17:50:00 ~ 2023-06-26 18:08:00  这 段 时 间 c l i c k h o u s e 集 群 到 底 在 执 行 什 么 内 容

select query_start_time,query_duration_ms,address,read_rows,query from system.query_log where event_time  between toDateTime('2023-06-26 17:50:00') and toDateTime('2023-06-26 18:08:00') order by read_rows desc limit 10

获 取 到 的 有 用 信 息 , 有 人 执 行   ( 此 类 请 求 存 在 并 发 ) s e l e c t   *   f r o m   x x 1   U N I O N   A L L   s e l e c t   *   f r o m   x x 2   拼 接 最 近 半 年 数 据 的 烂 s q l , 相 当 于 是 1 8 2 个 表 U N I O N   A L L , 数 据 量 达 3 0 0 亿

 

异 常 时 间 段 c l i c k h o u s e 集 群 日 志 报 错   D B : : E x c e p t i o n :   C a n n o t   s c h e d u l e   a   t a s k   ( v e r s i o n   1 9 . 1 7 . 4 . 1 1   ( o f f i c i a l   b u i l d ) )   ( f r o m   1 7 2 . 2 6 . 1 8 5 . 1 8 6 : 5 1 7 0 8 )   ( i n   q u e r y :   S E L E C T   a p i   F R O M   i o v _ l o g . t _ i o v _ g w _ l o g _ l o c a l _ 2 0 2 3 0 1 2 7 ) ,   S t a c k   t r a c e , 指 向 硬 件 异 常 的 物 理 机   1 7 2 . 2 6 . 1 8 5 . 1 8 6

2023.06.26 17:57:30.120612 [ 34959 ] {a6ee5760-0b1c-410d-a6de-a5016425fe68} <Error> executeQuery: Code: 439, e.displayText() = DB::Exception: Cannot schedule a task (version 19.17.4.11 (official build)) (from 172.26.185.186:51708) (in query: SELECT api FROM iov_log.t_iov_gw_log_local_20230127), Stack trace:

( 便 于 更 好 的 观 察 各 个 指 标 , 贴 一 张 核 心 指 标 汇 总 图 )

 

原 因 大 致 清 晰 了

1 7 2 . 2 6 . 1 8 5 . 1 8 6   物 理 机 硬 件 损 坏   - >   1 7 2 . 2 6 . 1 8 5 . 1 8 6   有 巨 烂 s q l 查 询   1 8 2 个 分 布 式 表 U N I O N   A L L , 总 数 据 量 达 3 0 0 亿   - >     触 发 1 7 2 . 2 6 . 1 8 5 . 1 8 6   c l i c k h o u s e _ l o c a l _ t h r e a d   线 程 飙 高   - >   触 发     c l i c k h o u s e _ g l o b a l _ t h r e a d _ a c t i v e   线 程 飙 高   - >   c l i c k h o u s e _ m e m o r y _ t r a c k i n g   飙 高   - >   达 到   m a x _ m e m o r y _ u s a g e _ f o r _ a l l _ q u e r i e   阈 值   - >   M e m o r y   l i m i t   ( t o t a l )   e x c e e d e d   报 错   - >   轮 询 重 启 c l i c k h o u s e 集 群 业 务 恢 复

优 化 点

1 、   c l i c k h o u s e _ g l o b a l _ t h r e a d _ a c t i v e   活 跃 线 程 数 监 控 告 警

2 、 c l i c k h o u s e _ m e m o r y _ t r a c k i n g   内 存 使 用 大 小 监 控 告 警

3 、 优 化   m a x _ m e m o r y _ u s a g   单 个 S Q L 在 单 台 机 器 最 大 内 存 使 用 量

4 、 约 束 烂 s q l

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

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

相关文章

Leetcode 数据库刷题记录

https://leetcode-cn.com/problemset/database/ 题目都是leetcode 上的可以点击题目会有相应的链接 每道题后面都应相应的难度等级&#xff0c;如果没时间做的话 可以在leetcode 按出题频率刷题&#xff0c;答案仅供参考 175. 组合两个表 难度简单 SQL架构 表1: Person ---…

深入理解什么是端口(port)

每当看到有人的简历上写着熟悉 TCP/IP, HTTP 等协议时, 我就忍不住问问他们: 你给我说说, 端口是啥吧! 可惜, 很少有人能说得让人满意… 所以这次就来谈谈 端口(port) , 这个熟悉的陌生人. 在此过程中, 还会谈谈 间接层, naming service 等概念, IoC, 依赖倒置 等原则以及 TCP …

服务器配置静态IP

服务器配置静态IP 一、前期准备二、配置静态IP 将服务器配置为使用静态IP地址。这将使服务器拥有一个永久的IP地址&#xff0c;而不会在每次启动时更改。为此&#xff0c;您需要编辑网络配置文件并将服务器的IP地址添加到其中。详细步骤如下&#xff1a; 一、前期准备 请在配置…

一篇搞懂socket、websocket、http协议及其使用

socket 介绍socket之前先看小编的这篇文章报文、报文段、数据包、帧、比特、字符、字节&#xff0c;与编码 在网络传输中数据都是经过多层封装的&#xff0c;在协议簇中最低层次为传输层才可以传输数据。再往底层就是面向计算机硬件和网络的部分了。例如常使用的ping baidu.co…

查看windows上的dll内容

1、安装Visual Studio时选择c桌面开发和通用Windows平台开发 2、cmd运行在Visual Studio安装路径下的VC\Auxiliary\Build\vcvars64.bat 3、在这个窗口中运行dumpbin

【JVM内存模型】—— 每天一点小知识

&#x1f4a7; J V M 内存模型 \color{#FF1493}{JVM内存模型} JVM内存模型&#x1f4a7; &#x1f337; 仰望天空&#xff0c;妳我亦是行人.✨ &#x1f984; 个人主页——微风撞见云的博客&#x1f390; &#x1f433; 《数据结构与算法》专栏的文章图文并茂&#x…

如何修改Jupyter Notebook的默认目录和默认浏览器

一、修改默认目录 Jupyter Notebook的文件默认保存目录是C:\Users\Administrator&#xff0c;默认目录可在黑窗口中查看&#xff0c;如下图所示&#xff1a; 为了方便文档的管理&#xff0c;可将默认目录修改成自己想保存的地方。修改方法如下&#xff1a; 1、找到config文件 …

迅为RK3568开发板Buildroot 系统自启动 QT 程序

本小节将讲解如何开机自启动 QT 程序。 在设置自启动 QT 程序之前&#xff0c;首先要编译好 QT 可执行程序&#xff0c;完成以下两步。 1、 已经根据 03_【北京迅为】itop-3568 开发板快速使用编译环境 ubuntu18.04 v1.0.doc 第 10 章节进行了 QT 程序的交叉编译 2、 将交叉…

SpringCloud(2) 注册中心Eureka、Nacos

目录 1.背景2.Eureka 注册中心3.Nacos 注册中心4.常见面试题1&#xff09;服务注册和发现是什么意思&#xff1f;Spring Cloud 如何实现服务注册发现&#xff1f;2&#xff09;Nacos 和 Eureka 有什么区别&#xff1f; 1.背景 注册中心是微服务中必须要使用的组件&#xff0c;…

PCL点云处理之细小空洞填补 (一百九十八)

PCL点云处理之细小空洞填补 (一百九十八) 一、算法介绍二、具体实现1.代码2.结果一、算法介绍 点云扫描过程中,由于遮挡或其他原因,可能存在一些细小空洞,有可能造成数据处理上一些问题,这里介绍一种填补细小空洞的方法。具体方法和效果如下所示 二、具体实现 1.代码…

Springboot整合Activiti详解

文章目录 版本依赖配置文件需要注意的问题画流程图activiti服务类进行编写流程部署流程定义启动流程流程实例 测试流程启动流程完成任务受理任务 版本依赖 开发工具 IDEASpringBoot 2.4.5&#xff08;这里我试过SpringBoot 3.1.1版本&#xff0c;Activiti没有启动&#xff0c;…

Spring中@NotEmpty、@NotBlank、@NotNull 的区别和使用

1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.0.5.RELEASE</version> </dependency>NotEmpty、NotBlank、NotNull 包的位置&#xff1…