如题。
简单方案: 写个后台脚本,定时监测 clickhouse 进程是否寄了,寄了就启动,治标不治本,实现起来快
复杂方案: 根据配置调优,或者扩大内存。收集最近导致服务挂掉的 SQL ,研究一下根本原因,这个方案可能花的时间会很多
另外请教,你们的 clickhouse 是怎么运维的...
1
foolvino 114 天前
改为 supervisor 启动
|
2
zhenjiachen 114 天前
用 docker 才是最快的,用 docker compose 的 health check ,定时检测服务器接口是否健康,如果接口调用失败会自动重启。
|
![]() |
3
RangerWolf 114 天前
我的生产环境就是用的 docker~ 在启动的时候 docker --restart always 就好了。。。
|
![]() |
4
RangerWolf 114 天前
另外在 clickhouse 里面,systems.query_thread_log 等相关表,有很详细的记录,推荐去找找看,看看能不能找到蛛丝马迹。但是如果是生产环境,8G 确实太小了。实在没办法,你可以修改配置文件,把允许的最大内存使用量降低。
我记得默认就是 8G ,但是系统里面还有其他的地方用了内存,就可能导致你的 Clickhouse 被干掉了 |
![]() |
5
faceair 114 天前
有钱省事方案:买云厂商运维的 clickhouse
|
6
podel 114 天前
+1 docker 启动 docker --restart always
或者 systemd 管理 挂掉后自动重启就行了。 |
![]() |
7
octobersnow 114 天前
可以现在 SQL 使用内存的
|
8
alsas 114 天前
docker 或者 systemd
|
![]() |
9
Itoktsnhc 114 天前
docker --restart always , 然后通过 clickhouse 配置限制下使用的最大内存之类的配置
|
10
pastor 114 天前
这配置,是在侮辱 clickhouse 还是在侮辱自家业务...
|
12
julyclyde 114 天前
systemd 是唯一方案
supervisord 它自己都不能保证重启,有什么资格去管别人 cron 里检测重启会导致程序所属的 cgroup 变成 user slice |
13
NikoXu 114 天前
systemd
|