Skip to main content

how-to-profiling

CPU profiling

go tool pprof -http="0.0.0.0:8081" http://localhost:8080/debug/pprof/profile?seconds=30

打开 <your-ip>:8081 并在站点标题的 VIEW 菜单中选择 Flame Graph:

Memory profiling

databend-querydatabend-meta 可以选择使用 jemalloc 构建, 它提供了各种内存 profiling 功能。

目前,它在 Mac 上不起作用,无论 intel 还是 Arm。

启用内存 profiling

  1. 构建启用 memory-profiling 功能的 databend-query:
cargo build --bin databend-query --release --features memory-profiling
  1. 启动 databend,使用环境变量 MALLOC_CONF 启用内存 profiling:
MALLOC_CONF=prof:true,lg_prof_interval:30 ./target/release/databend-query

生成堆 profile

pdf 中生成一个调用图,说明此间隔期间的内存分配:

jeprof --pdf ./target/release/databend-query heap.prof > heap.pdf

Fast jeprof

jeprof 对于大型堆分析来说非常慢,瓶颈在于 addr2line,如果你想把速度从 30 分钟提高到 3 秒,请使用:

git clone https://github.com/gimli-rs/addr2line
cd addr2line
cargo b --examples -r
cp ./target/release/examples/addr2line <your-addr2line-find-with-whereis-addr2line>
Explore Databend Cloud for FREE
Low-cost
Fast Analytics
Easy Data Ingestion
Elastic Scaling
Try it today