本次测试在无读写情况下进程的1 t+ X6 A7 d/ M8 h8 o8 f! s
几个需要用到脚本和命令4 G9 B9 [$ t/ N, O" A I, E* F3 R
磁盘本身的大概速度
- X" [( f* i8 G# O1 y/ y9 G# B9 u9 K _ W- @' Q
& W9 w* L2 y1 G[root@ceph-2 ~]# ceph tell osd.2 bench# T( @$ k+ R8 a9 V
0 S. |6 u, j2 X) w8 v- @6 ~" I, |{' P& u1 s1 X( S2 j
"bytes_written": 1073741824,
+ H, }3 E+ b6 Z( ?' K" ~- i% D. d "blocksize": 4194304,! G, U s" {0 R0 p7 o3 X
"bytes_per_sec": 33975481# N8 f2 ?# S! d1 u+ s7 D* z
}
; @& Q- I6 ^# L; p1 i/ ]! C' b得到的结果为32MB/s
9 F9 h+ [" R, L4 V获取osd上pg迁移的对象的脚本 OSD的日志需要开启到10,这里采取动态开启的方式 [root@ceph-2 ~]# - o L$ v: r. H) R4 A
[root@ceph-2 ~]# ceph daemon osd.2 config set debug_osd 103 X" v; ]. l0 e4 @& s
{
# z9 \ I" s# |; x- G1 d0 X' s: @ "success": ""* {' D7 W( N5 |1 h! o# i }# L
}
7 C( r# j! B: S: t# G
* o/ x! w7 {. Q日志解析的脚本; i; s w2 B* _# l7 c8 ?
* J8 w, q$ X0 U: P3 o
[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"}'; l5 Q1 X' D( O4 O. V2 r
[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"}'
6 o$ u7 K; s7 J8 [[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"}'; u# c2 E) p' s- M
[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"}'
) ?, h$ m( s/ K" }) k" a
4 F2 m, K9 h. }, G+ ?1 {( T5 V: ?7 u1 ~6 A
/ Z G( A8 M6 o) H, t! q7 J$ 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"}'1 c% f7 K2 v9 E7 Q+ u
[root@ceph-2 ~]# ceph pg dump |grep recovering" t* r+ ^ x- ~0 K5 x
dumped all
% I1 Z/ L6 X) o' q# J获取当前的正在迁移的PG
6 A/ f0 b8 I7 Y& y" I1 ][root@ceph-2 ~]# ceph pg dump|grep recovering|awk '{print $1,$2,$4,$10,$15,$16,$17,$18}'
* Q! R8 m0 h9 s! `2 ~8 Y-bash: a: command not found/ Q% `" c4 ?" L. J$ k
dumped all
8 n. v1 r- q% r4 _8 x6 c$ T[root@ceph-2 ~]# ceph pg dump |grep recovering |awk '{print $1,$2,$4,$10,$15,$16,$17,$18}'2 }( g7 p* I6 j5 u; U- A+ N% S
dumped all
+ W; w* a0 y0 r% K8 p; ^& e
( }2 K6 R% \2 V' g% d' b6 j过滤下输出结果
; ?& V$ B! o; V, E% I& j: x$ h% m5 {
3 g1 j- I4 M0 l) X: t7 L+ S6 l( w l- E3 s! v! ^- _
动态监控PG的迁移
$ M% a4 Q5 M; T/ f[root@ceph-2 ~]# watch -n 1 -d "ceph pg dump|grep recovering |awk '{print ,}'"
& F, c" g8 o- @* k m) e[root@ceph-2 ~]# watch -n 1 -d "ceph pg dump|grep recovering |awk '{print }'"7 c% `9 K/ D! Q9 y8 B( }/ y
[root@ceph-2 ~]# , ?* _! O) k* a+ y8 C
( w. A f% e) L
% K! p' |2 A# e6 }4 r重启OSD进程 systemctl restart ceph-osd.target 磁盘的读写速度 dstat -td -D /dev/sdb -o disk.csv sdb为需要监控的盘9 y' t7 s1 Y2 }+ Y; w! A
测试的步骤与流程 整个测试需要保证每一次获取数据的过程都近似,这样才能最大程度减少环境对数据的影响 开始需要写入一些测试数据,这个可以用 rados -p rbd bench 3600 --no-cleanup 这个让每个PG上面大概有600-700个object,写入这个数据后就不再写入数据了 ! `/ X8 K z- V V. ~/ e r& N7 i
|