注意
本文档适用于 Ceph 开发版本。
使用perf
顶部:
sudo perf top -p `pidof ceph-osd`
要捕获调用图数据:
sudo perf record -p `pidof ceph-osd` -F 99 --call-graph dwarf -- sleep 60
按调用者查看(您可以看到每个顶级函数调用什么):
sudo perf report --call-graph caller
按被调用者查看(您可以看到谁调用每个顶级函数):
sudo perf report --call-graph callee
- note:
如果调用者/被调用者视图看起来相同,您可能正在
常见问题
Ceph 使用RelWithDebInfo作为其默认值CMAKE_BUILD_TYPE因此-O2 -g用于在这种情况下编译树。并且-O2优化级别-fomit-frame-pointer默认情况下。但这阻止了堆栈分析器cmake
cmake -DCMAKE_CXX_FLAGS="-fno-omit-frame-pointer"
或构建树时,可以禁用此选项:
make CMAKE_CXX_FLAGS="-fno-omit-frame-pointer"
火焰图
首先,设置好环境:
cd ~/src
git clone https://github.com/brendangregg/FlameGraph
运行 ceph,然后记录一些 perf 数据:
sudo perf record -p `pidof ceph-osd` -F 99 --call-graph dwarf -- sleep 60
然后生成火焰图:
sudo perf script | ~/src/FlameGraph/stackcollapse-perf.pl > /tmp/folded
~/src/FlameGraph/flamegraph.pl /tmp/folded > /tmp/perf.svg
firefox /tmp/perf.svg
由 Ceph 基金会带给您
Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.