环境:

服务器 ubuntu1804*4

k8s版本:v1.18.3

docker版本:19.03.8

背景:同事突然反馈说某个界面展示不了数据,还报服务访问错误,经过排查以后是Clickhouse集群出了问题。

解决步骤

1.在k8s集群上查看clickhouse集群状态

Kubectl get pod |grep clickhouse

 查看发现报Clickhouse其中一个节点挂掉并显示OOMKilled,一开始以为是执行了什么命令内存不足导致,但在尝试临时给与更多的内存后发现还是不行

2.查看该clickhouse节点日志

kubectl logs chi-ftabc-clickhouse-0-0-0

发现该Clickhouse节点在重启以后仍是会不停地去执行某个任务,以为是Zookeeper传给它的,于是先把Zookeeper的服务停了以后重启该pod,仍然无法解决。

继续查找报错日志,其中有一个报错是

 Current max source part size for mutation is 0 but part size 114379. Will not mutate part {}.xxxx

3.上网百度,在浏览相关文章以后发现这篇文章,其中谈到了matution的问题,抱着尝试的心态。对比了该Pod与其他ClickhousePod的存储文件,发现确实在${Clickhouse_path}/data/xxx/xxx/matution_xxx.txt,使用cat查看以后发现和我们问题节点的Clickhouse执行的命令相关

4.把相关matution_xxx.txt文件移到备份目录,重启Clickhouse问题节点,发现服务恢复正常。

总结:关于clickhouse的matution了解还不清楚,但是个人推测是这些命令在clickhouse启动时就会自动执行,导致内存瞬间爆满,OOM而使得服务被迫停止

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐