Re: Performance issues with deep-scrub since upgrading from v12.2.2 to v12.2.5

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Yes. Deep scrub of a bucket index pool requires reading all the omap keys, and the rgw bucket indices can get quite large. The OSD will limit the number of keys it reads at a time to try and avoid overwhelming things.

We backported to luminous (but after the 12.2.5 release, it looks like) a commit that would let client requests preempt the scrubbing reads, which would make it restart several times if the bucket index keeps getting written to. I think there may also have been a bug fix where the OSD had been able to issue client access during some scrubs that could result in issues, but I'm not sure when that backport would have happened.

I'd try and figure out why the RGW resharding wasn't working properly though, as preventing resharding when it wants to is inviting issues with the underlying RADOS objects.
-Greg

On Thu, Jun 14, 2018 at 4:37 PM Sander van Schie / True <Sander.vanSchie@xxxxxxx> wrote:

Thank you for your reply.


I'm not sure if this is the case, since we have a rather small cluster and the PGs have at most just over 10k objects (total objects in the cluster is about 9 million). During the 10 minute scrubs we're seeing a steady 10k iops on the underlying block device of the OSD (which are enterprise SSDs), both on the primary OSD and on a secondy OSD. It's all read IOPS and throughput is about 65 MiB/s. I'm not very familiar with the deep scrub process, but this seems a bit much to me. Can this still be intended behaviour? This would mean it's only able to check like 15-20 objects a second with SSD OSDs while doing 8k IOPS. The strange thing is that we didn't see this happen at all before the upgrade, it started right after.


I also checked the PGs of which the deep-scrub finished in a couple of second, most of those have 5k objects. The PGs for which deep-scrub is giving issues, seem to all be part of the rgw bucket index pool.


Since we're using tenants for RGW, the dynamic bucket index resharding didn't work before the update of Ceph (

http://tracker.ceph.com/issues/22046). After the update it was hammering the cluster quite hard, doing about 30-60k write iops on the rgw index pool for two days straight. The resharding list also kept showing pretty much completely different data every few seconds. Since this was also affecting performance, we temporarily disabled this. Could this somehow be related?


Thanks


Sander





From: Gregory Farnum <gfarnum@xxxxxxxxxx>
Sent: Thursday, June 14, 2018 19:45
To: Sander van Schie / True
Cc: ceph-users@xxxxxxxxxxxxxx
Subject: Re: Performance issues with deep-scrub since upgrading from v12.2.2 to v12.2.5
 
Deep scrub needs to read every object in the pg. if some pgs are only taking 5 seconds they must be nearly empty (or maybe they only contain objects with small amounts of omap or something). Ten minutes is perfectly reasonable, but it is an added load on the cluster as it does all those object reads. Perhaps your configured scrub rates are using enough iops that you don’t have enough for your client workloads.
-Greg
On Thu, Jun 14, 2018 at 11:37 AM Sander van Schie / True <Sander.vanSchie@xxxxxxx> wrote:
Hello,

We recently upgraded Ceph from version 12.2.2 to version 12.2.5. Since the upgrade we've been having performance issues which seem to relate to when deep-scrub actions are performed.

Most of the time deep-scrub actions only takes a couple of seconds at most, however ocassionaly it takes 10 minutes. It's either a few seconds or 10 minutes, never a couple of minutes or anything else in between. This has been happening since the upgrade.

For example see the following:

2018-06-14 10:11:46.337086 7fbd3528b700  0 log_channel(cluster) log [DBG] : 15.2dc deep-scrub starts
2018-06-14 10:11:50.947843 7fbd3528b700  0 log_channel(cluster) log [DBG] : 15.2dc deep-scrub ok

2018-06-14 10:45:49.575042 7fbd32a86700  0 log_channel(cluster) log [DBG] : 14.1 deep-scrub starts
2018-06-14 10:55:53.326309 7fbd32a86700  0 log_channel(cluster) log [DBG] : 14.1 deep-scrub ok

2018-06-14 10:58:28.652360 7fbd33a88700  0 log_channel(cluster) log [DBG] : 15.5f deep-scrub starts
2018-06-14 10:58:33.411769 7fbd2fa80700  0 log_channel(cluster) log [DBG] : 15.5f deep-scrub ok

The scrub on PG 14.1 took pretty much exactly 10 minutes, the others only about 5 seconds. It matches the value of "osd scrub finalize thread timeout" which is currently set to 10 minutes, however I'm not sure if it's related or just a coincidence. It's not just this PG, but there's a bunch of them, also on difference nodes and OSD's.

PG dump for this problematic PG is as follows:

PG_STAT OBJECTS MISSING_ON_PRIMARY DEGRADED MISPLACED UNFOUND BYTES      LOG  DISK_LOG STATE        STATE_STAMP                VERSION       REPORTED       UP         UP_PRIMARY ACTING     ACTING_PRIMARY LAST_SCRUB    SCRUB_STAMP                LAST_DEEP_SCRUB DEEP_SCRUB_STAMP           SNAPTRIMQ_LEN
14.1      10573                  0        0         0       0          0 1579     1579 active+clean 2018-06-14 15:47:32.832222  1215'1291261   1215:7062174   [3,8,20]          3   [3,8,20]              3  1179'1288697 2018-06-14 10:55:53.326320    1179'1288697 2018-06-14 10:55:53.326320             0

During the longer running deep-scrub actions we're also running into performance problems.

Any idea what's going wrong?

Thanks

Sander
_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Ceph Dev]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux