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

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

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

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

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

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

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