ceph-perf源码分析
2021-10-23 本文已影响0人
小跑001
1、类图

2、分析
2.1、指标
- couter只增不减,除非系统重置,反应速率
- gauge可增可减,反应当前状态,例如内存大小
- histogram 是统计图,例如统计延迟,统计某一大小区间范围内的延迟区间,比如100k内的文件延迟分别在10ms内,20ms内的数量.可以通过工具 histogram_dump.py tool (see src/tools/histogram_dump.py)来直观查看。
2.2、类的逻辑
- CephContext成员_perf_counters_connection是装PerfCounters的容器, 实际实现PerfCountersConnection的类是PerfCountersCollectionImpl
- PerfCounters是通过PerfCountersBuilder来创建,PerfCounters包含一系列perf couter,通常是对应一个子系统
- 每个perf couter对应结构perf_counter_data_any_d结构体,多个perf_counter_data_any_d组成PerfCounters
- 如果是直方图由类perf_counter_data_any_d::histogram体现,成员PerfHistogram::m_axes_config代表元数据
- perf_counter_data_any_d::prio 优先级在命令 ceph daemonperf osd.4 op_in_bytes debugonly 起到作用,只有大于等于debugonly的优先级才会时时显示
2.3、命令
- ceph daemon osd.4 perf dump 用来输出所有的性能指标
- ceph daemon osd.4 perf histogram dump 用来输出直方图,工具src/tools/histogram_dump.py更直观, 具体可以help查看
- ceph daemonperf 用来输出时时指标,这个命令实际是ceph对应的python脚本的逻辑,实际调用的是 perf dump命令, 因此也可看出这里不是时时显示histogram的数据,显示histogram需要用histogram_dump.py