本次测试在无读写情况下进程的0 o: B! `7 r% r6 l
几个需要用到脚本和命令
, I H, g9 E; C, ~8 \磁盘本身的大概速度
* D: R& h% Z- E9 M( E" e/ S4 C3 @, V3 V4 `. s* ?
, ]. u5 V& m" |" {; I+ a' z
[root@ceph-2 ~]# ceph tell osd.2 bench& |* U1 Y$ }" }9 z
" c# c$ S* _3 _/ Y, A; `4 J
{
$ T4 K- f; C( D J "bytes_written": 1073741824,0 x" r2 e# R- m3 W% C+ A9 ^. m
"blocksize": 4194304,
: g+ o" |$ e: D% Z$ e% f! ~ "bytes_per_sec": 33975481
9 b' Q$ {. `' R; G8 L) S}
5 [6 g5 v7 l- ?8 `. j8 J3 Y得到的结果为32MB/s o8 L) l! C4 k* @" N( q$ E
获取osd上pg迁移的对象的脚本 OSD的日志需要开启到10,这里采取动态开启的方式 [root@ceph-2 ~]# 5 }. A; q9 q! A
[root@ceph-2 ~]# ceph daemon osd.2 config set debug_osd 10
+ O' I! a& L$ L! s{
* b1 u9 K. F' k" c "success": ""! o3 O r* I9 l2 O# ^
} w- I& m l, u7 q
$ d! K* a) q. D& b2 i# a$ a日志解析的脚本: h1 C; k2 J3 M3 X! w- O6 m
. M! z- z+ ^; G- M& \+ A( \5 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 H, a n. O8 q! w6 x7 H; g3 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"}'
+ h x2 h r* ], l) n[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"}'
* h8 H2 P! y; `2 I+ K2 Z' |1 v[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"}'* [- r) d! n$ a8 Y
# H+ [& Z, Z* ]$ A# q& C
; _# ~+ {, K! {6 R C D2 W
/ a' i# X; L( p+ U[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"}'2 x0 r8 n) G# \* E* I
[root@ceph-2 ~]# ceph pg dump |grep recovering
! u* p; ]# u4 V! |dumped all
" X( ^$ b( s, d& w) C$ e+ H获取当前的正在迁移的PG
* u) t6 Q) p9 N! [" @[root@ceph-2 ~]# ceph pg dump|grep recovering|awk '{print $1,$2,$4,$10,$15,$16,$17,$18}'
0 |9 K8 g0 i" B5 i-bash: a: command not found0 R |0 ~9 F/ {" `( E2 Y. X
dumped all/ t/ G* ?+ A/ x# i3 r" \
[root@ceph-2 ~]# ceph pg dump |grep recovering |awk '{print $1,$2,$4,$10,$15,$16,$17,$18}'+ {7 @$ N# p+ l( ^
dumped all
% [8 x9 z4 n0 p/ ?* \0 x0 R* w! R$ P8 [$ j9 ~
过滤下输出结果3 G) r m% ^$ ^4 l+ a4 N/ c
. C. k( E% `/ v N" ?2 d' K; |
_1 E1 _- C* M( j. v; b0 g$ O1 K3 u4 x
动态监控PG的迁移* a. e: h- \+ x4 ?
[root@ceph-2 ~]# watch -n 1 -d "ceph pg dump|grep recovering |awk '{print ,}'"% N3 y6 T7 J6 }4 p
[root@ceph-2 ~]# watch -n 1 -d "ceph pg dump|grep recovering |awk '{print }'"& v3 z* x/ k1 ~0 X
[root@ceph-2 ~]# }4 c# w8 a( j( l8 q% f( W) a+ G
7 t- ?. }! d% ]
' N4 t" K6 s* \2 x" c; D: P7 k. l重启OSD进程 systemctl restart ceph-osd.target 磁盘的读写速度 dstat -td -D /dev/sdb -o disk.csv sdb为需要监控的盘
5 d- L- b8 _6 q9 Z# C测试的步骤与流程 整个测试需要保证每一次获取数据的过程都近似,这样才能最大程度减少环境对数据的影响 开始需要写入一些测试数据,这个可以用 rados -p rbd bench 3600 --no-cleanup 这个让每个PG上面大概有600-700个object,写入这个数据后就不再写入数据了
$ x: o! d R. i9 A. D |