有了解 clickhouse 这个数据库的老哥吗

2020-12-17 15:23:12 +08:00
hsk9044  hsk9044

想把 clickhouse 用在公司游戏业务的埋点统计上. 数据库用起来效果很好, 但是给上司演示的时候发现 clickhouse-serv 这个进程会长时间占用 cpu 资源, 占用大概 5-10%的浮动, 我虚拟机的配置是 i7 8700k, 分了 12 个核心, 8G 内存, ssd 储存.

我有了解过 clickhouse 的后台进程会不断进行合并, 排序数据, 但是实际情况是已经十几个小时没有更新过数据了, 但是这个进程还是不断占用 cpu 资源

我知道这点资源其实根本不算什么, 但是公司服务器资源申请困难, 上司说找不到原因就不用这个数据库了

2767 次点击
所在节点   数据库  数据库
21 条回复
newtype0092
newtype0092
2020-12-17 15:33:03 +08:00
我们都是 mysql 数据过亿查询效率太低的时候才切到 clickhouse 上的,除了插入和修改成本比较高,需要从业务流程想办法规避,其他没遇到太大问题。
alexanderchiu
alexanderchiu
2020-12-17 15:34:11 +08:00
cpu 占用高,你是在一直插入数据吗?
另外可以用阿里云的 clickhouse,后台会有开发为你提供技术建议和解决 cpu 占用过高问题
hsk9044
hsk9044
2020-12-17 15:35:47 +08:00
@newtype0092 mysql 应该是直接否了, 这边做的埋点业务基本不需要更新, 只要插入, 并且需要做复杂的聚合统计. 现在基本只有 clickhouse 能满足需求了, 但是这个占用资源的现象很费解
hsk9044
hsk9044
2020-12-17 15:39:25 +08:00
@alexanderchiu 不是 cpu 占用高, 而是 clickhouse 的后台进程长时间都会占用部分的 cpu 资源, 其实已经很久没插入数据库了
monsterxx03
monsterxx03
2020-12-17 15:45:37 +08:00
没用过, 不过一般思路是 gdb attach 上去看看有哪些活跃线程, 看看对应代码大致在做什么.
这么点 CPU 占用率, 很正常啊, 就算没数据插入, 后台线程扫描也是有开销的, 看看有什么对应参数限制线程池大小或扫描平率.
alexanderchiu
alexanderchiu
2020-12-17 15:46:25 +08:00
@hsk9044 我记得如果即使是不插入数据的话,其实 mergeTree 还是会定期根据一定时间间隔来继续合并压缩数据。合并策略有按日期合并。可能这部分会一直占用一定的 cpu 。或者你可以去钉钉的 clickhouse 技术交流群咨询下,阿里云 clickhouse 页面有群号。
alexanderchiu
alexanderchiu
2020-12-17 15:47:57 +08:00
顺便打个广告哈哈 可以尝试试下阿里云的 clickhouse (利益相关:在他们的 ck 组实习过 他们会有技术专家专门为你定制方案 /排查问题
DoctorCat
DoctorCat
2020-12-17 15:51:49 +08:00
dbskcnc
dbskcnc
2020-12-17 15:53:56 +08:00
hsk9044
hsk9044
2020-12-17 16:23:09 +08:00
@alexanderchiu 好的, 我去买一个看看

@DoctorCat 那个 issue 的情况似乎不太一样, 我这边查的实际上是没有在合并资源的
aladdindingding
aladdindingding
2020-12-17 16:34:31 +08:00
按照什么分区的 我们都是按照天分区的
hsk9044
hsk9044
2020-12-17 16:58:48 +08:00
@aladdindingding 按天+埋点类型, 不过目前分区也不多, 大概 100 个左右
tikazyq
tikazyq
2020-12-17 17:08:49 +08:00
不要叫老哥,叫老大
lancelee01
lancelee01
2020-12-17 17:21:09 +08:00
ClickHouse 进程占用 CPU 是因为里面有很多线程池,正常的行为活动吧,包括和 ZK 交互、检查旧分区这些。同时你是没有写入业务数据,不代表没有系统数据,比如 ClickHouse 的各种 log 表,自己会写,也会 merge,移除旧的数据判断。所以,占用 CPU 是正常行为,难不成你不进行操作,数据库就得装死冬眠吗。。。哈哈哈
hsk9044
hsk9044
2020-12-17 17:22:14 +08:00
@lancelee01 精辟
f6x
f6x
2020-12-17 17:24:56 +08:00
看曲线算平均值把. 有些 db 平时 cpu 很低, 突然一下子 300%才真是不能用.
DoctorCat
DoctorCat
2020-12-17 17:56:57 +08:00
There are two types of background actions:

merging of data parts;
fetching of data part from replica.

那是不是 issue 中 alexey-milovidov 提到的第二种原因呢?
@hsk9044
hsk9044
hsk9044
2020-12-17 17:59:53 +08:00
@DoctorCat 我理解的第二个原因是开了 clickhouse 的集群复制, 实际上我这边只开用了单机
DoctorCat
2020-12-17 18:04:35 +08:00
@hsk9044 那就只能 perf 看下了
6ufq0VLZn0DDkL80
2020-12-17 19:57:11 +08:00
perf 一下不就完了

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

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

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

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

© 2021 V2EX