Bug #44184
openSlow / Hanging Ops after pool creation
0%
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