Ceph 查看所有卷 iops
问题场景
ceph 集群 iops 打满,导致慢请求。需要定位到哪些虚拟机 iops 占用比较高
已排查,无坏盘,osd 落盘延迟也不高,存储网络也是正常
使用方法
在固定时间,查看并收集卷的 iops 情况,volumes 可以修改对应的存储池名字
rbd perf image iostat volumes
# 读排序查看 volumes 池的卷 iops
rbd perf image iostat --sort-by read-ops -p volumes
# 可以输出到指定文本,方便查看筛选高的
rbd perf image iostat volumes > rbd_iostat.txt
cat rbd_iostat.txt | grep 'k/s' | grep volumes/ | awk '{print $1}' | sort | uniq
NAME WR RD WR_BYTES RD_BYTES WR_LAT RD_LAT
volumes-c87651a7-3d3c-453d-831d-f15da79a3c8b 46/s 1.31k/s 1.7 MiB/s 9.4 MiB/s 10.14 ms 913.84 us
volumes-0c756d90-f451-43af-9f55-3b6013a600d6 34/s 1.03k/s 2.3 MiB/s 13 MiB/s 11.63 ms 2.28 ms
volumes-a981ebe5-95a0-4cc8-a8a5-19d82b8225aa 33/s 1.25k/s 864 KiB/s 8.3 MiB/s 5.92 ms 906.97 us
# 注释
WR 写 iops
RD 读 iops
WR_BYTES 写带宽
RD_BYTES 读带宽
WR_LAT 写延迟
RD_LAT 读延迟
# ceph 集群理论 iops 计算公式
130 * osd 数 / 3
一个 hdd 提供的 iops 为 150,但是 ceph 无法将硬盘性能全部发挥出来,需要降低一点。比如 150-20=130 iops
# 块大小计算方式
公式:带宽 / iops = 块大小,可分别统计读/写
处理方案
-
通过卷找出对应云硬盘,对其进行 qos 限制。
-
将对 iops 要求高的卷迁移至性能更高的存储池,比如 ssd 存储池
注意事项
rbd perf image iostat volumes
# 这个命令只有 N 版以后才有,其他版本没有这个命令,只能通过监控页面查看