
# ALM-45443 集群存在慢SQL查询
#### 告警解释
系统每隔1分钟检测ClickHouse的慢SQL，当检测到有SQL的执行时间大于等于慢SQL阈值时，系统产生此告警。
当系统检测到SQL执行时间小于慢SQL阈值时，告警自动清除。
#### 告警属性
| 告警ID  | 告警级别 | 是否可自动清除 |
|:---|:---|:---|
| 45443 | 重要   | 是       |
   
#### 告警参数
| 参数名称 | 参数含义          |
|:---|:---|
| 来源   | 产生告警的集群或系统名称。 |
| 服务名  | 产生告警的服务名称。    |
| 角色名  | 产生告警的角色名称。    |
| 主机名  | 产生告警的主机名。     |
   
#### 对系统的影响
ClickHouse服务的性能下降，影响其他业务的响应时间，若慢SQL的量过大，可能会导致服务不可用。
#### 可能原因
- ClickHouse业务压力过大。
- SQL语句执行耗时较长。
 
#### 处理步骤
**检查ClickHouse业务压力是否过大**
1. 登录FusionInsight Manager页面，选择"运维 \> 告警 \> 告警"，查看当前告警"定位信息"中的角色名以及确认主机名所在的IP地址。
2. 以客户端安装用户，登录客户端的节点，执行如下命令： 
   **cd** *{客户端安装路径}*
   **source bigdata_env**
   - 集群已启用Kerberos认证（安全模式）： **kinit** *组件业务用户*
     **clickhouse client --host** *上报告警的ClickHouseServer实例IP* **--port** **--secure**
     
   
   - 集群未启用Kerberos认证（普通模式）： **clickhouse client --host** *上报告警的ClickHouseServer实例IP* **--user** *用户名* **--password** **--port**
     
   
   
   
   
3. 执行以下语句，查询系统表判断是否有业务频繁写入，若有相关业务，等待业务执行完成，查看告警是否清除。 
   **SELECT query_id, user, FQDN(), elapsed, query FROM system.processes ORDER BY query_id;**
   - 是，操作结束。
   
   - 否，执行[步骤 4]。
   
   
   
   
**检查SQL语句执行是否耗时较长**
4. 查看告警对象所属的逻辑集群。登录Manager页面，选择"集群 \> 服务 \> ClickHouse \> 逻辑集群 \> 查询管理 \> 正在进行的慢查询"。在界面上查看哪些SQL执行耗时较长，和客户进行确认，进行业务进行调整，对慢SQL语句进行优化，是否能优化成功。
   
   - 是，执行[步骤 5]。
   
   - 否，执行[步骤 6]。
   
   
   
   
5. 请等待SQL执行结束之后，查看告警是否消除。
   
   - 是，操作结束。
   
   - 否，执行[步骤 6] 。
   
   
   
   
**收集故障信息**
6. 在FusionInsight Manager界面，选择"运维 \> 日志 \> 下载"。
7. 在"服务"中勾选待操作集群的"ClickHouse"。
8. 在"主机"中选择异常的主机，单击"确定"。
9. 单击右上角的时间编辑按钮，设置日志收集的"开始时间"和"结束时间"分别为告警产生时间的前后1小时，单击"下载"。
10. 请联系运维人员，并发送已收集的故障日志信息。
 
#### 告警清除
此告警修复后，系统会自动清除此告警，无需手工清除。
#### 参考信息
不涉及。
