Hi Cephers, We're in the middle of trying to triage the issue with ceph cluster running 0.80.9 which was reported by Songbo and seeking for you experts' advices. In fact, per our testing the process of stopping an working OSD and starting it again will lead to a huge performance downgrade. In other words, this issue can be reproduced quite easily, and we cannot lower the impact of the state of OSD by tuning the settings like osd_max_backfills/osd_recovery_max_chunk/osd_recovery_max_active. Through looking into the source code, we notice that the requests issued by clients will be queued firstly when the corresponding PGs are in some certain states (like recovering and backfill) and then processed. During this period, the IOPS outputted by fio drops significantly(from 2000 to 60). What we can think of this is to guarantee the data consistency, are we correct? If that's the design, we're wondering how Ceph can support the applications that are performance-sensitive? Is there any other parameters we can tuning to reduce the impact? Thanks, Jevon On 26/10/15 13:27, wangsongbo wrote: > Hi all, > > When an osd is started, I will get a lot of slow requests from the > corresponding osd log, as follows: > > 2015-10-26 03:42:51.593961 osd.4 [WRN] slow request 3.967808 seconds > old, received at 2015-10-26 03:42:47.625968: > osd_repop(client.2682003.0:2686048 43.fcf > d1ddfcf/rbd_data.196483222ac2db.0000000000000010/head//43 v > 9744'347845) currently commit_sent > 2015-10-26 03:42:51.593964 osd.4 [WRN] slow request 3.964537 seconds > old, received at 2015-10-26 03:42:47.629239: > osd_repop(client.2682003.0:2686049 43.b4b > cbcbbb4b/rbd_data.196483222ac2db.000000000000020b/head//43 v > 9744'193029) currently commit_sent > 2015-10-26 03:42:52.594166 osd.4 [WRN] 40 slow requests, 17 included > below; oldest blocked for > 53.692556 secs > 2015-10-26 03:42:52.594172 osd.4 [WRN] slow request 2.272928 seconds > old, received at 2015-10-26 03:42:50.321151: > osd_repop(client.3684690.0:191908 43.540 > f1858540/rbd_data.1fc5ca7429fc17.0000000000000280/head//43 v > 9744'63645) currently commit_sent > 2015-10-26 03:42:52.594175 osd.4 [WRN] slow request 2.270618 seconds > old, received at 2015-10-26 03:42:50.323461: > osd_op(client.3684690.0:191911 > rbd_data.1fc5ca7429fc17.0000000000000209 [write 2633728~4096] > 43.72b9f039 ack+ondisk+write e9744) currently commit_sent > 2015-10-26 03:42:52.594264 osd.4 [WRN] slow request 4.968252 seconds > old, received at 2015-10-26 03:42:47.625828: > osd_repop(client.2682003.0:2686047 43.b4b > cbcbbb4b/rbd_data.196483222ac2db.000000000000020b/head//43 v > 9744'193028) currently commit_sent > 2015-10-26 03:42:52.594266 osd.4 [WRN] slow request 4.968111 seconds > old, received at 2015-10-26 03:42:47.625968: > osd_repop(client.2682003.0:2686048 43.fcf > d1ddfcf/rbd_data.196483222ac2db.0000000000000010/head//43 v > 9744'347845) currently commit_sent > 2015-10-26 03:42:52.594318 osd.4 [WRN] slow request 4.964841 seconds > old, received at 2015-10-26 03:42:47.629239: > osd_repop(client.2682003.0:2686049 43.b4b > cbcbbb4b/rbd_data.196483222ac2db.000000000000020b/head//43 v > 9744'193029) currently commit_sent > 2015-10-26 03:42:53.594527 osd.4 [WRN] 40 slow requests, 16 included > below; oldest blocked for > 54.692945 secs > 2015-10-26 03:42:53.594533 osd.4 [WRN] slow request 16.004669 seconds > old, received at 2015-10-26 03:42:37.589800: > osd_repop(client.2682003.0:2686041 43.b4b > cbcbbb4b/rbd_data.196483222ac2db.000000000000020b/head//43 v > 9744'193024) currently commit_sent > 2015-10-26 03:42:53.594536 osd.4 [WRN] slow request 16.003889 seconds > old, received at 2015-10-26 03:42:37.590580: > osd_repop(client.2682003.0:2686040 43.fcf > d1ddfcf/rbd_data.196483222ac2db.0000000000000010/head//43 v > 9744'347842) currently commit_sent > 2015-10-26 03:42:53.594538 osd.4 [WRN] slow request 16.000954 seconds > old, received at 2015-10-26 03:42:37.593515: > osd_repop(client.2682003.0:2686042 43.b4b > cbcbbb4b/rbd_data.196483222ac2db.000000000000020b/head//43 v > 9744'193025) currently commit_sent > 2015-10-26 03:42:53.594541 osd.4 [WRN] slow request 29.138828 seconds > old, received at 2015-10-26 03:42:24.455641: > osd_repop(client.4764855.0:65121 43.dbe > 169a9dbe/rbd_data.49a7a4633ac0b1.0000000000000021/head//43 v > 9744'12509) currently commit_sent > 2015-10-26 03:42:53.594543 osd.4 [WRN] slow request 15.998814 seconds > old, received at 2015-10-26 03:42:37.595656: > osd_repop(client.1800547.0:1205399 43.cc5 > 9285ecc5/rbd_data.1b794560c6e2ea.00000000000000d0/head//43 v > 9744'36732) currently commit_sent > 2015-10-26 03:42:54.594892 osd.4 [WRN] 39 slow requests, 17 included > below; oldest blocked for > 55.693227 secs > 2015-10-26 03:42:54.594908 osd.4 [WRN] slow request 4.273600 seconds > old, received at 2015-10-26 03:42:50.321151: > osd_repop(client.3684690.0:191908 43.540 > f1858540/rbd_data.1fc5ca7429fc17.0000000000000280/head//43 v > 9744'63645) currently commit_sent > 2015-10-26 03:42:54.594911 osd.4 [WRN] slow request 4.271290 seconds > old, received at 2015-10-26 03:42:50.323461: > osd_op(client.3684690.0:191911 > rbd_data.1fc5ca7429fc17.0000000000000209 [write 2633728~4096] > 43.72b9f039 ack+ondisk+write e9744) currently commit_sent > > Meanwhile, I run fio process with the rbd ioengine. > The iops of read and write were too small to response any IO from the > fio process, > In other words, when an osd is started, the IO of the whole cluster > will be blocked. > Is there some parameter to adjust ? > How to explain this problem? > The results of running fio process were as fllows: > > ebs: (g=0): rw=randrw, bs=8K-8K/8K-8K/8K-8K, ioengine=rbd, iodepth=64 > fio-2.2.9-20-g1520 > Starting 1 thread > rbd engine: RBD version: 0.1.9 > Jobs: 1 (f=1): [m(1)] [0.3% done] [0KB/0KB/0KB /s] [0/0/0 iops] [eta > 05h:10m:14s] > ebs: (groupid=0, jobs=1): err= 0: pid=40323: Mon Oct 26 04:02:00 2015 > read : io=10904KB, bw=175183B/s, *iops=21*, runt= 63737msec > slat (usec): min=0, max=61, avg= 1.11, stdev= 3.16 > clat (msec): min=1, max=63452, avg=1190.04, stdev=6046.28 > lat (msec): min=1, max=63452, avg=1190.04, stdev=6046.28 > clat percentiles (msec): > | 1.00th=[ 3], 5.00th=[ 4], 10.00th=[ 5], 20.00th=[ > 6], > | 30.00th=[ 6], 40.00th=[ 7], 50.00th=[ 8], 60.00th=[ > 9], > | 70.00th=[ 10], 80.00th=[ 12], 90.00th=[ 14], 95.00th=[ 709], > | 99.00th=[16712], 99.50th=[16712], 99.90th=[16712], > 99.95th=[16712], > | 99.99th=[16712] > bw (KB /s): min= 129, max= 2038, per=100.00%, avg=774.00, > stdev=1094.73 > write: io=24976KB, bw=401264B/s,*iops=48,* runt= 63737msec > slat (usec): min=0, max=40, avg= 2.48, stdev= 3.30 > clat (msec): min=2, max=31379, avg=786.91, stdev=4829.02 > lat (msec): min=2, max=31379, avg=786.92, stdev=4829.02 > clat percentiles (msec): > | 1.00th=[ 4], 5.00th=[ 6], 10.00th=[ 6], 20.00th=[ > 8], > | 30.00th=[ 9], 40.00th=[ 9], 50.00th=[ 11], 60.00th=[ > 12], > | 70.00th=[ 13], 80.00th=[ 15], 90.00th=[ 19], 95.00th=[ > 29], > | 99.00th=[16712], 99.50th=[16712], 99.90th=[16712], > 99.95th=[16712], > | 99.99th=[16712] > bw (KB /s): min= 317, max= 5228, per=100.00%, avg=1957.33, > stdev=2832.48 > lat (msec) : 2=0.07%, 4=3.23%, 10=52.29%, 20=35.76%, 50=4.41% > lat (msec) : 750=1.36%, 1000=0.02%, 2000=0.02%, >=2000=2.83% > cpu : usr=0.03%, sys=0.00%, ctx=228, majf=0, minf=19 > IO depths : 1=0.1%, 2=0.1%, 4=0.4%, 8=3.9%, 16=18.9%, 32=73.1%, > >=64=3.5% > submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, > >=64=0.0% > complete : 0=0.0%, 4=97.5%, 8=0.0%, 16=0.2%, 32=0.9%, 64=1.5%, > >=64=0.0% > issued : total=r=1363/w=3122/d=0, short=r=0/w=0/d=0, > drop=r=0/w=0/d=0 > latency : target=0, window=0, percentile=100.00%, depth=64 > > Run status group 0 (all jobs): > READ: io=10904KB, aggrb=171KB/s, minb=171KB/s, maxb=171KB/s, > mint=63737msec, maxt=63737msec > WRITE: io=24976KB, aggrb=391KB/s, minb=391KB/s, maxb=391KB/s, > mint=63737msec, maxt=63737msec > > Disk stats (read/write): > dm-0: ios=81/34, merge=0/0, ticks=472/26, in_queue=498, > util=0.30%, aggrios=143/102, aggrmerge=106/122, aggrticks=1209/134, > aggrin_queue=1343, aggrutil=0.60% > sdd: ios=143/102, merge=106/122, ticks=1209/134, in_queue=1343, > util=0.60% > > > Thanks and Regards, > WangSongbo > > On 15/10/22 下午10:43, wangsongbo wrote: >> Hi all, >> >> When an osd is started, relative IO will be blocked. >> According to the test result,the larger iops the clients send , the >> longer it will take to elapse. >> Adjustment on all the parameters associate with recovery operations >> was also found useless. >> >> How to reduce the impact of this process on the IO ? >> >> Thanks and Regards, >> WangSongbo >> > > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in > the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > More majordomo info at http://vger.kernel.org/majordomo-info.html