找回密码
 注册
查看: 612|回复: 0

ceph 测试磁盘 recovery的速度控制

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2022-8-3 10:12:09 | 显示全部楼层 |阅读模式
本次测试在无读写情况下进程的
& z; H2 h$ g9 a1 H4 X+ e+ A几个需要用到脚本和命令
) [7 y+ U$ O8 M) w! ?! O; b磁盘本身的大概速度% M# L3 @6 H4 n3 l1 r8 f' M
7 [: f4 I- ^* O* `1 z5 T9 @3 X* ~% @

! M( |) p& v6 l[root@ceph-2 ~]# ceph tell osd.2 bench
) @( I6 e- ^5 v6 P0 @) i; E$ d6 n/ {8 M. E" g2 I0 F
{
2 F9 {3 v1 J4 u: z: u2 [6 J& [    "bytes_written": 1073741824,
: E4 ^/ R  T9 n( }6 Z& d. l    "blocksize": 4194304,; i; \' o# e' U# L: m! S% ]
    "bytes_per_sec": 33975481
) e  u0 Z2 c/ q! R3 S+ n}
3 T" J/ f# Q9 D, @) P8 ~

得到的结果为32MB/s% y( u5 Z/ `4 r* K* l  [3 z8 K" k
获取osd上pg迁移的对象的脚本

OSD的日志需要开启到10,这里采取动态开启的方式

[root@ceph-2 ~]# % M' M8 T( q) u" ]1 m- }' _
[root@ceph-2 ~]# ceph daemon osd.2 config set debug_osd 10
" t: |) q4 |/ q1 C8 D{$ W5 I5 b6 m% {" j6 {4 V! m- j0 R
    "success": ""
3 g8 |2 m7 R/ M7 Q3 A}
+ m1 k: @  u. t. Y, s- _' D' J8 }, p6 L7 W2 @+ T
日志解析的脚本$ I' R/ c2 p$ b6 T: N; |" U

$ j3 k6 H- b" _" E: d. h[root@ceph-2 ~]# cat /var/log/ceph/ceph-osd.2.log |awk '$7=="finish_recovery_op" && $8=="pg[0.15("{sub(/.*/,substr($2,1,8),$2);print $0}' |awk '{a[$1,"",$2]++}END{for (j in a )print j,a[j]|"sort -k 1"}'
/ Z: r! M) \5 f7 |& L[root@ceph-2 ~]# cat /var/log/ceph/ceph-osd.2.log |awk '$7=="finish_recovery_op" && $8=="pg[0.15("{sub(/.*/,substr($2,1,8),$2);print $0}' |awk '{a[$1,"",$2]++}END{for (j in a )print j,a[j]|"sort -k 1"}'
; K0 @+ `3 p1 M6 l[root@ceph-2 ~]# cat /var/log/ceph/ceph-osd.2.log |awk '$7=="finish_recovery_op" && $8=="pg[0.15("{sub(/.*/,substr($2,1,8),$2);print $0}' |awk '{a[$1,"",$2]++}END{for (j in a )print j,a[j]|"sort -k 1"}'
8 r' r) ^8 F, N) P[root@ceph-2 ~]# cat /var/log/ceph/ceph-osd.2.log |awk '$7=="finish_recovery_op" && $8=="pg[0.15("{sub(/.*/,substr($2,1,8),$2);print $0}' |awk '{a[$1,"",$2]++}END{for (j in a )print j,a[j]|"sort -k 1"}'
8 I" b# Q7 {& _! M2 Y* k' L
6 U) R# ]% d3 A) J7 X* ?! i
4 N9 J$ n( G! X! a3 L$ a. r0 ]  p# _0 l3 i" K
[root@ceph-2 ~]# cat /var/log/ceph/ceph-osd.2.log |awk '$7=="finish_recovery_op" && $8=="pg[0.15("{sub(/.*/,substr($2,1,8),$2);print $0}' |awk '{a[$1,"",$2]++}END{for (j in a )print j,a[j]|"sort -k 1"}'
" E% v  x+ M! I" P7 h, h8 R  S[root@ceph-2 ~]# ceph pg dump |grep recovering
" V4 _; u1 ]% H7 R0 O4 A" D: y% tdumped all
' {! h; i. y) z5 @# a获取当前的正在迁移的PG' t, J9 d; J- |$ ]. x: J0 U
[root@ceph-2 ~]#  ceph pg dump|grep recovering|awk '{print $1,$2,$4,$10,$15,$16,$17,$18}'
7 M7 R8 I3 i" D( B# G-bash: a: command not found: z4 a% }6 g* D  u/ s
dumped all
: P$ F7 |) j) M, L- ^# A0 e[root@ceph-2 ~]# ceph pg dump |grep recovering |awk '{print $1,$2,$4,$10,$15,$16,$17,$18}': A! r8 g% ^' J7 Z( @# f
dumped all
# I' p+ @- p' l
! a" B( f" X5 R  `- j过滤下输出结果" \. j( `# W& G2 G& h) y: s5 y; w

; r; K& U" E2 _3 w, ]4 J

- z7 v+ U/ W: B4 S9 {9 l, d: B
5 Q1 W& W! R! E) ?7 V动态监控PG的迁移
$ z7 B3 K4 i) `[root@ceph-2 ~]# watch -n 1 -d "ceph pg dump|grep recovering |awk '{print ,}'"
+ w. m5 W2 I8 s. }3 N8 X[root@ceph-2 ~]# watch -n 1 -d "ceph pg dump|grep recovering |awk '{print }'"
+ A6 \! S% e8 w/ |[root@ceph-2 ~]# 6 r$ r) k! o* _* P
# ?( i* P2 B! o2 ~6 z8 v0 C% c. y

) c1 s$ M5 X( X( `3 D: F# v( S. X

重启OSD进程

systemctl restart ceph-osd.target

磁盘的读写速度

dstat -td -D /dev/sdb -o disk.csv

sdb为需要监控的盘. j; V7 f) b6 r
测试的步骤与流程

整个测试需要保证每一次获取数据的过程都近似,这样才能最大程度减少环境对数据的影响

开始需要写入一些测试数据,这个可以用

rados -p rbd bench 3600 --no-cleanup

这个让每个PG上面大概有600-700个object,写入这个数据后就不再写入数据了

: F. ]- U- C/ Z+ A6 s& I
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-11 23:02 , Processed in 0.027883 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表