8G 云服务器上启了个 clickhouse,它总会因为某些 SQL 挂掉,现在想监控它,在它挂掉时能自己启动。我对 clickhouse🐔毛不懂,时间有限,想了 1 个简单方案和 1 个复杂,求帮忙看看。。。

2022-10-08 10:21:34 +08:00
 0x0208v0

如题。

简单方案: 写个后台脚本,定时监测 clickhouse 进程是否寄了,寄了就启动,治标不治本,实现起来快

复杂方案: 根据配置调优,或者扩大内存。收集最近导致服务挂掉的 SQL ,研究一下根本原因,这个方案可能花的时间会很多

另外请教,你们的 clickhouse 是怎么运维的...

2394 次点击
所在节点    程序员
15 条回复
foolvino
2022-10-08 10:26:14 +08:00
改为 supervisor 启动
zhenjiachen
2022-10-08 10:26:44 +08:00
用 docker 才是最快的,用 docker compose 的 health check ,定时检测服务器接口是否健康,如果接口调用失败会自动重启。
RangerWolf
2022-10-08 10:27:30 +08:00
我的生产环境就是用的 docker~ 在启动的时候 docker --restart always 就好了。。。
RangerWolf
2022-10-08 10:29:26 +08:00
另外在 clickhouse 里面,systems.query_thread_log 等相关表,有很详细的记录,推荐去找找看,看看能不能找到蛛丝马迹。但是如果是生产环境,8G 确实太小了。实在没办法,你可以修改配置文件,把允许的最大内存使用量降低。
我记得默认就是 8G ,但是系统里面还有其他的地方用了内存,就可能导致你的 Clickhouse 被干掉了
faceair
2022-10-08 10:32:56 +08:00
有钱省事方案:买云厂商运维的 clickhouse
podel
2022-10-08 10:34:13 +08:00
+1 docker 启动 docker --restart always
或者 systemd 管理 挂掉后自动重启就行了。
octobersnow
2022-10-08 10:41:40 +08:00
可以现在 SQL 使用内存的
alsas
2022-10-08 10:50:26 +08:00
docker 或者 systemd
Itoktsnhc
2022-10-08 12:03:36 +08:00
docker --restart always , 然后通过 clickhouse 配置限制下使用的最大内存之类的配置
pastor
2022-10-08 13:53:01 +08:00
这配置,是在侮辱 clickhouse 还是在侮辱自家业务...
0x0208v0
2022-10-08 14:01:36 +08:00
@pastor 哈哈哈老哥,这个 clickhouse 里面表不多,主要是为了报表展示的系统弄的,聚合起来能比 PG 快一些
julyclyde
2022-10-08 14:03:50 +08:00
systemd 是唯一方案
supervisord 它自己都不能保证重启,有什么资格去管别人
cron 里检测重启会导致程序所属的 cgroup 变成 user slice
NikoXu
2022-10-08 15:40:06 +08:00
systemd
changdy
2022-10-08 22:43:23 +08:00
@pastor 到也正常吧 比如有时候我只是想用到列式存储的优点 .不需要事务之类的情况 ,clickhouse 也是一个比较好的选择,
changdy
2022-10-08 22:43:47 +08:00
@v2exblog 会差多大?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/885163

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX