clickhouse与火焰图

最近再对clickhouse hive engine进行一些调优工作。本文将总结调优过程中常用的一些工具和命令。

火焰图

火焰图 (Flame Graph) 是性能优化大师 Bredan Gregg 创建的一种性能分析图表,因为它的样子近似火焰而得名。使用火焰图能够非常快速的定位到代码中的瓶颈,它就像一个在代码之海中航行的程序员的地图,指引着性能优化的方向。下图是clickhouse的一张火焰图。

火焰图的上下表示调用关系,下层的函数调用上层的函数。每个函数对应一个等高的长条,这个长条对应着该函数的某项指标,如cpu time/real time/memory allocate.

根据不同的指标,火焰图可以分为:

  • cpu火焰图。显示代码中函数的cpu耗时,函数宽度与cpu time成正比。主要用于分析进程中的cpu瓶颈

  • real火焰图。显示代码中函数的duration耗时,函数宽度与real time成正比。与cpu火焰图结合可用于分析进程中的io瓶颈

  • mem火焰图。显示代码中函数中申请内存的大小,函数宽度与memory allocation成正比。主要用于优化进程的内存占用。

对于clickhouse来说,性能瓶颈主要在于cpu和io。因此本文着重介绍如何生成cpu和real火焰图

clickhouse-flamegraph

clickhouse-flamegraph(https://github.com/Slach/clickhouse-flamegraph)是一个命令行工具,他能够将clickhouse系统表system.trace_log中的性能指标以query_id为粒度可视化,形成对应的火焰图。

在使用clickhouse-flamegraph之前,需要

  • 安装:参考官方文档,此处略

  • 配置:修改clickhouse配置文件:config.xml和users.xml,参考官方文档。这样做的目的是让clickhouse在query执行过程中,对cpu time, real time, memory allocate等指标进行采样。

安装和配置完成后,如何使用clickhouse-flame-graph生成火焰图呢?

  • 首先执行对应的query,

  • 然后记录对应的query_id

  • 运行clickhouse-flamegraph

$ clickhouse-flameg
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值