首页/系统与基础设施/存储速查/Ceph 性能瓶颈的定位方法
分布式与对象存储70 条

Ceph 性能瓶颈的定位方法

Ceph 性能瓶颈定位靠分段测量:用 rados bench 在客户端取得上限,再用 osd perf 与主机 IO 数据判断是客户端并发、网络、后端磁盘还是分布倾斜先到极限,条件固定才能形成可比基线。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌‌​‌‌​​​‌‌​‌‌​​‌​‌​‌‌‌​​​​​‌‌​‌​​​​​‌​‌‌​‌​‌‌‌​​​​​‌‌​​‌​‌​‌‌‌​​‌​​‌‌​​‌‌​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​‌‌​‌​‌‌​​​​‌​‌‌​‌‌‌​​‌‌​​​‌‌​‌‌​​‌​‌​​‌​‌‌​‌​‌‌​​​‌​​‌‌​‌‌‌‌​‌‌‌​‌​​​‌‌‌​‌​​​‌‌​‌‌​​​‌‌​​‌​‌​‌‌​‌‌‌​​‌‌​​‌​‌​‌‌​​​‌‌​‌‌​‌​‌‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

瓶颈定位的路径

Ceph 性能问题很少出在「Ceph 本身」,而是某一层先到极限:客户端并发不足、网络带宽打满、OSD 后端盘 IO 饱和、PG 数不合理导致的分布倾斜。定位思路是分段测量:先在客户端压测得到上限,再对比单 OSD 与后端磁盘的实际数据,谁的资源先到顶就是瓶颈层。

基本信息

适用平台Ceph 集群(所有主流版本)
客户端压测rados bench,可区分写、顺序读与随机读
服务端观察ceph osd perf、iostat、网络接口吞吐
权限要求压测需可写专用池的身份,观察可用只读身份

典型使用场景

  • 新集群验收:按写入、顺序读、随机读三段测出基线
  • 业务变慢:判断是集群整体下降还是单个业务池被挤占
  • 扩容前后对比:验证新增节点是否真的带来线性提升
  • 参数调整评估:改 PG 数或多活 MDS 前后做同条件复测

分段压测

分段压测
rados bench -p testpool 60 write --no-cleanup   # 写测试,保留对象用于读测
rados bench -p testpool 60 seq                  # 顺序读
rados bench -p testpool 60 rand                 # 随机读
rados -p testpool cleanup                       # 清理测试对象
ceph osd perf | sort -k3 -n | tail                # 找延迟最高的 OSD

瓶颈特征对照

瓶颈层观察到的特征处理方向
客户端集群空闲但吞吐上不去加大并发、检查客户端网卡与内核参数
网络接口带宽接近线速,延迟上升拆分公网与集群网、升级链路
OSD 后端单盘 util 接近满,apply 延迟高换盘或分流热点,核查raid卡缓存策略
分布倾斜个别 OSD 负载远高于其他检查 CRUSH 规则与 PG 分布是否均衡
压测必须固定条件复测:并发数、对象大小、池的副本数与 PG 数都会明显改变结果,混着比等于没有基线。
不要在生产池上做破坏性压测;测试对象未清理会占用容量并干扰后续容量水位判断。

按顺序排除

  • 先确认客户端侧资源是否够用:并发数、CPU、网卡是否打满
  • 再看存储网络是否接近线速,延迟是否异常抬升
  • 接着看单 OSD 与单盘延迟是否明显高于集群平均
  • 最后检查数据分布是否倾斜,个别节点承担了过多负载
  • 每一步都以采集到的数据为依据,不靠感受下结论
慢请求告警里通常指明涉及的对象与 OSD,先顺着它缩小范围,比从全局开始盲查快得多。

易错点

  • 只看集群总吞吐不看单 OSD 分布,把倾斜误判为整体性能不足
  • 用随机小对象压测结果去推断大文件顺序读写能力,结论完全不可用
  • 压测对象忘记清理,容量悄悄上涨直到触发水位告警
  • 调优只改参数不动硬件,后端盘已饱和时任何参数调整都收效甚微

数据来源与参考

  • Ceph 官方文档:Performance Benchmarking(rados bench)
  • Ceph 官方文档:OSD perf 与性能调优

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/storage/ceph-performance-bottleneck.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌‌​‌‌​​​‌‌​‌‌​​‌​‌​‌‌‌​​​​​‌‌​‌​​​​​‌​‌‌​‌​‌‌‌​​​​​‌‌​​‌​‌​‌‌‌​​‌​​‌‌​​‌‌​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​‌‌​‌​‌‌​​​​‌​‌‌​‌‌‌​​‌‌​​​‌‌​‌‌​​‌​‌​​‌​‌‌​‌​‌‌​​​‌​​‌‌​‌‌‌‌​‌‌‌​‌​​​‌‌‌​‌​​​‌‌​‌‌​​​‌‌​​‌​‌​‌‌​‌‌‌​​‌‌​​‌​‌​‌‌​​​‌‌​‌‌​‌​‌‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​