ClickHouse长时间并发满,导致不可服务,如何快速恢复
问题描述
ClickHouse并发满,新的请求无法执行,影响服务的可用性,报错信息如下:
DB::Exception: Too many simultaneous queries. Maximum: 100
处理步骤
- 登录ClickHouse客户端节点,连接报错的服务端,具体请参考ClickHouse客户端使用实践。
- 执行如下命令查看正在执行的SQL任务,查看当前的并发数:
select count(*) from system.processes;
确认获得值大于等于100。
- 执行如下命令结束正在执行的查询类大SQL:
kill query where query_kind='Select' and elapsed > 60;
- 等待30秒后,执行如下命令统计正在执行的sql任务:
select count(*) from system.processes;
确认获取值小于60。
- 若并发数仍然大于60,登录Manager页面,选择“集群 > 服务 > ClickHouse > 实例”,勾选报错的ClickHouseServer实例,选择“更多 > 重启实例”。