本次测试在无读写情况下进程的
, U6 o) [; D- b几个需要用到脚本和命令* G) G. D, N" C4 Y
磁盘本身的大概速度
6 j3 t3 {, E- \( W' | p' x0 Q; X1 l: B
7 v+ I- N& }* I
[root@ceph-2 ~]# ceph tell osd.2 bench( Y* n8 i% r7 u* b
9 d1 t/ k9 T( X( b1 S; D3 Y{; V" B9 c- J, a, c/ C8 F% w# {7 f
"bytes_written": 1073741824,& Q' {) _" N3 H
"blocksize": 4194304,; R9 |4 v6 V! J. }4 c; c0 S
"bytes_per_sec": 33975481
j2 L! u' E z: Z% M, o/ O5 X) M}
: i" L* q- z" R N# Q- w% \得到的结果为32MB/s
0 |% W, o2 L% l) ?9 k7 O获取osd上pg迁移的对象的脚本 OSD的日志需要开启到10,这里采取动态开启的方式 [root@ceph-2 ~]#
7 z" n+ X, ?2 G[root@ceph-2 ~]# ceph daemon osd.2 config set debug_osd 107 o y, v+ j! Z7 Z
{
/ }# \+ J& C# N5 e4 o "success": ""3 y4 O8 ]5 ]" ?% i5 Q3 S% s
}
% u8 q! a& M* u, R- q% \/ t1 b0 }) w
9 h0 f4 [. }3 x8 H& H K+ {) ~日志解析的脚本
2 q- B& F) f- `1 z$ v3 M! E, M
$ [# ^' g8 c1 e5 t7 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"}'
* G- a i4 w- `% a9 o/ K, M2 |6 s[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"}' ]# k! b) A# [7 S: 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"}'
7 ?1 M# `( L6 {4 w6 p7 ~[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"}') o" W8 h3 J" A- p/ i8 f) t. w/ _
1 I4 K2 F) N2 Q e( g* k L+ k( T) e3 C- ]6 `- s1 t1 q7 Y9 N1 H+ b
6 E+ J6 K+ d: Y$ H6 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"}'- O( o* R0 p: k
[root@ceph-2 ~]# ceph pg dump |grep recovering0 ~5 g. }" q' e. g
dumped all! c7 A5 f+ O! F) @
获取当前的正在迁移的PG( Z; ?/ r- k9 z" D! @2 M( U7 I0 |
[root@ceph-2 ~]# ceph pg dump|grep recovering|awk '{print $1,$2,$4,$10,$15,$16,$17,$18}'
0 l$ h: t5 x# X$ I$ c b1 o-bash: a: command not found
W" S$ L0 V8 i+ n. I% O# i9 udumped all
2 J5 k1 j- E9 h& u# H1 T[root@ceph-2 ~]# ceph pg dump |grep recovering |awk '{print $1,$2,$4,$10,$15,$16,$17,$18}'% |. E& }; |6 O& O! ]5 b7 \
dumped all& H8 ` r8 n* T$ W* Q2 S% X( ~
% E7 C2 t8 y2 G6 J4 |: u1 u过滤下输出结果
9 X1 S7 T% Y' `0 r+ K9 ^& i4 i k+ r8 q% O5 F8 e
- v2 s5 `5 Z" m" a% w5 Q* G% U% l# x' `. p# M, p7 l' p/ O
动态监控PG的迁移
0 b! j$ o7 ]" u2 [' o! n[root@ceph-2 ~]# watch -n 1 -d "ceph pg dump|grep recovering |awk '{print ,}'"
- K# x9 Q; Y' Y: K" R1 e[root@ceph-2 ~]# watch -n 1 -d "ceph pg dump|grep recovering |awk '{print }'"
; a4 L- g4 u: \* x) q[root@ceph-2 ~]# % B4 _ v8 T5 x1 y$ x6 D
/ T! q+ S4 M8 _ j: S
# Q, i' d+ b9 I3 c0 j8 ^9 p重启OSD进程 systemctl restart ceph-osd.target 磁盘的读写速度 dstat -td -D /dev/sdb -o disk.csv sdb为需要监控的盘
5 a7 Z W: U- }, C测试的步骤与流程 整个测试需要保证每一次获取数据的过程都近似,这样才能最大程度减少环境对数据的影响 开始需要写入一些测试数据,这个可以用 rados -p rbd bench 3600 --no-cleanup 这个让每个PG上面大概有600-700个object,写入这个数据后就不再写入数据了 a. Q" B: \3 S- I# d5 J8 @6 C
|