Project

General

Profile

Actions

Bug #44184

open

Slow / Hanging Ops after pool creation

Added by Wido den Hollander about 4 years ago. Updated over 2 years ago.

Status:
Need More Info
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
% Done:

0%

Source:
Community (dev)
Tags:
osd,slow ops,osd_pg_create
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(RADOS):
OSD
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

On a cluster with 1405 OSDs I've ran into a situation for the second time now where a pool creation resulted into massive slow ops on the OSDs serving that pool.

I'll summarize it first before I continue with more information:

- A pool is created
- Once the balancer starts it's first balancing round slow op start to appear
- Slow ops are gone as soon as the pool is removed

Details about the cluster:

- 1405 OSDs
- Mixture of HDD, SSD, FileStore and BlueStore
- Nautilus 14.2.4 (80%) and 14.2.6 (20%)

This situation happened two times:

- December 12th 2019
- February 18th 2020

On both cases a pool was created.

Creating the pool went fine, nothing happened. All PGs were created and were active+clean

The balancer module is configured to only rebalance between 0700 and 1800 and both pools were created outside this window.

On 07:00 the balancer module rebalanced the cluster and this lead to massive slow ops on the OSDs. So much that client I/O is massively impacted.

Now keep in mind that the pool was created hours before this happened and all PGs are active+clean. It was not before the balancer started to rebalance the cluster these slow op occured.

In the last 24h this happened again because somebody ran the command:

radosgw-admin usage show

This caused the RGW to create the usage pool for RGW.

It wasn't until 18-02-2020 07:02 that the slow ops started to appear:

2020-02-18 07:03:10.518 7fd1f0344700 -1 osd.1646 1064314 get_health_metrics reporting 1 slow ops, oldest is osd_pg_create(e1064314 40.66:1064099 40.6a:1064099)
2020-02-18 07:05:15.112 7fd1f0344700 -1 osd.1646 1064325 get_health_metrics reporting 4 slow ops, oldest is osd_op(client.1804403322.0:43816957 25.6c8 25.f23496c8 (undecoded) ondisk+write+known_if_redirected e10
64326)
2020-02-18 07:05:16.158 7fd1f0344700 -1 osd.1646 1064325 get_health_metrics reporting 14 slow ops, oldest is osd_op(client.1804403322.0:43816957 25.6c8 25.f23496c8 (undecoded) ondisk+write+known_if_redirected e1
064326)
2020-02-18 07:05:17.198 7fd1f0344700 -1 osd.1646 1064325 get_health_metrics reporting 17 slow ops, oldest is osd_op(client.1804403322.0:43816957 25.6c8 25.f23496c8 (undecoded) ondisk+write+known_if_redirected e1064326)
2020-02-18 07:05:18.209 7fd1f0344700 -1 osd.1646 1064325 get_health_metrics reporting 21 slow ops, oldest is osd_op(client.1804403322.0:43816957 25.6c8 25.f23496c8 (undecoded) ondisk+write+known_if_redirected e1064326)
2020-02-18 07:05:19.248 7fd1f0344700 -1 osd.1646 1064325 get_health_metrics reporting 25 slow ops, oldest is osd_op(client.1804403322.0:43816957 25.6c8 25.f23496c8 (undecoded) ondisk+write+known_if_redirected e1064326)
2020-02-18 07:05:36.235 7fd1f0344700 -1 osd.1646 1064329 get_health_metrics reporting 1 slow ops, oldest is osd_pg_create(e1064328 40.66:1064099 40.6a:1064099)
2020-02-18 07:05:37.242 7fd1f0344700 -1 osd.1646 1064329 get_health_metrics reporting 1 slow ops, oldest is osd_pg_create(e1064328 40.66:1064099 40.6a:1064099)
2020-02-18 07:05:38.242 7fd1f0344700 -1 osd.1646 1064329 get_health_metrics reporting 1 slow ops, oldest is osd_pg_create(e1064328 40.66:1064099 40.6a:1064099)
2020-02-18 07:05:39.262 7fd1f0344700 -1 osd.1646 1064329 get_health_metrics reporting 1 slow ops, oldest is osd_pg_create(e1064329 40.66:1064099 40.6a:1064099)
2020-02-18 07:05:40.248 7fd1f0344700 -1 osd.1646 1064329 get_health_metrics reporting 1 slow ops, oldest is osd_pg_create(e1064329 40.66:1064099 40.6a:1064099)
2020-02-18 07:05:41.284 7fd1f0344700 -1 osd.1646 1064329 get_health_metrics reporting 1 slow ops, oldest is osd_pg_create(e1064329 40.66:1064099 40.6a:1064099)
2020-02-18 07:05:42.235 7fd1f0344700 -1 osd.1646 1064329 get_health_metrics reporting 1 slow ops, oldest is osd_pg_create(e1064329 40.66:1064099 40.6a:1064099)
2020-02-18 07:05:43.199 7fd1f0344700 -1 osd.1646 1064329 get_health_metrics reporting 1 slow ops, oldest is osd_pg_create(e1064329 40.66:1064099 40.6a:1064099)
2020-02-18 07:05:44.182 7fd1f0344700 -1 osd.1646 1064329 get_health_metrics reporting 1 slow ops, oldest is osd_pg_create(e1064329 40.66:1064099 40.6a:1064099)
2020-02-18 07:05:45.132 7fd1f0344700 -1 osd.1646 1064329 get_health_metrics reporting 1 slow ops, oldest is osd_pg_create(e1064329 40.66:1064099 40.6a:1064099)

This went on and on. All the OSDs involved with this new pool (pool ID 40) were reporting slow ops.

I downloaded osdmap e1064314 and checked the map. It shows:

epoch 1064314
fsid 5ec1249f-7a87-4b4a-b360-2b5d17e24984
created 2015-11-25 16:50:51.738355
modified 2020-02-18 07:02:39.535132
flags sortbitwise,recovery_deletes,purged_snapdirs
...
...
pool 40 '.zm1.usage' replicated size 3 min_size 2 crush_rule 2 object_hash rjenkins pg_num 128 pgp_num 128 autoscale_mode warn last_change 1064100 flags hashpspool,nodelete stripe_width 0 application rgw
...
...
pg_upmap_items 3.0 [2491,2338]
pg_upmap_items 3.3 [1468,2393]
...
pg_temp 4.3c2 [254,2597]
pg_temp 10.c6e [421,2193,2180]
pg_temp 25.362 [674,941,2180]
pg_temp 25.3c9 [2203,829,1088]

There are no upmap nor pg_temp Placement Groups for pool 40.

Finally we removed the pool and within a couple of seconds all the slow requests were gone.

To me this seems to be related to the pool being created, but it's only triggered after the balancer triggers a optimization.

Has anybody seen this before or has a clue what might be happening here?


Files

ceph-13.2.8-debug-creating-pgs.diff (513 Bytes) ceph-13.2.8-debug-creating-pgs.diff Nikola Ciprich, 03/23/2020 03:39 PM
Actions

Also available in: Atom PDF