# catalog pod memory investigation Looking for clusterbot catalog initial FBC mem spike. Assessment of existing infrastructure per-pod. custom cluster metric query ``` sum (container_memory_rss{namespace='openshift-marketplace',container="",pod!="",pod=~".*-catalog.*"}) by (pod) ``` my version ``` sum(container_memory_rss{pod='marketplace-operator-d4f794477-97tp5',namespace='openshift-marketplace'}) BY (namespace) ``` # clusterbot launch 4.10 (sqlite) ## redhat-marketplace ![](https://i.imgur.com/KCTWip8.png) - resource-request ~52MiB, spiking to 105MiB 1m30s after creation, then ~52MiB flat - rss 85Mib, gradual growth with spikes to ~104MiB - working-set ~53MiB, gradual growth to ~63MiB ## redhat-operators ![](https://i.imgur.com/Qpv3lfL.png) - resource-request 52.43MiB solid - rss 56MiB, growth with spikes in 1h to 114MiB - working-set 49Mib, growth with spikes in 1h to 79MiB ## community-operators ![](https://i.imgur.com/oiEVviV.png) - resource-request 52.43MiB solid - rss 146MiB ~linear growth to 206MiB - working-set 112Mib, ~linear growth to 144MiB ## certified-operators ![](https://i.imgur.com/twbbw89.png) - resource-request 52.43MiB solid - rss spiky with return to base state, still showing persistent growth 75 - 81 - working-set spiky with return to base state, still showing persistent growth 104 - 114 # clusterbot launch 4.11 (fbc) ## redhat-marketplace ![](https://i.imgur.com/2ELVCSc.png) - resource-request - steady-state 53MiB; - rss - initial 110MiB, dropping w/in 2min to 42MiB, semi-linear gain to 70Mib with a spike of almost 100MiB - working-set - 119MiB initial, dropping w/in 2min to 85MiB, some creep to 100Mib over 20min ## redhat-operators ![](https://i.imgur.com/p27jzQ2.png) - resource-request - rock steady at 52.43 - rss - 117MiB with occasional spikes to 235MiB, 184MiB. Good recovery to base state. - working-set - steady around 400MiB+-10 ## community-operators ![](https://i.imgur.com/CF8W7Qd.png) - resource-request - rock steady at 52.43 - rss - 95MiB, mostly-linear growth to 118MiB over 30mins - working-set - 254MiB+-20MiB steady-state ## certified-operators ![](https://i.imgur.com/4JBRb17.png) - resource-request 52.43MiB solid - rss 57-77MiB periodic growth - working-set matching rss, but 181-191MiB # clusterbot launch 4.12 ## redhat-marketplace ![](https://i.imgur.com/A5NmeXs.png) - resource-request rock steady at 52.43 - rss initial spike 78MiB, after 2min dropping to 45MiB, then incredibly jaggy but returning faithfully to 59MiB floor - working-set mimicing rss, but ranging 110MiB to 94MiB, floor of 100MiB ## redhat-operators ![](https://i.imgur.com/6HBCg9m.png) - resource-request rock steady at 52.43 - rss 105MiB, spiky showing gradual growth to 123MiB, ceiling of 168MiB - working-set mimicing rss, spiky showing 377MiB gradual growth to 388Mib, ceiling 400MiB ## community-operators ![](https://i.imgur.com/50NqVb0.png) - resource-request rock steady at 52.43 - rss 217MiB initial, dropping in 1m to 85Mib, linear growth to floor of 103MiB, spike ceiling 155MiB - working-set no initial spike, 245MiB growing linearly to 260MiB, spike ceiling 282MiB ## certified-operators ![](https://i.imgur.com/fdhfuta.png) - resource-request rock steady at 52.43 - rss occasional spikes to 126MiB, but faithfully returning to base 61MiB+-2 - working-set as rss, but base 184MiB+-3 # standalone docker based on the fact that community-operators was the least-well-behaving catalog pod of the set, we assessed the impact of the no-precached versus precached docker images w.r.t. memory demand stability. | variant | initial cpu | cpu after 10s | initial mem | mem after 10s | |---------|-------------|---------------|-------------|---------------| | uncached | 100+ | ~0 | 700MiB | 700MiB | | precached | 14 | ~0 | 14MiB | 14MiB | not only was the memory request higher in the uncached variant (by a factor of 50!) but it was not released for the uncached variant, which meant that it was a sunk cost over the lifetime of the container. # catalog stats over revisions Just to rule out the possibility that the 50x memory footprint might be the result of normal growth, here's a table of the official catalogs which demonstrate a universal diminishing trend. | cat | ver | #package | #bundle | |-----|-----|----------|---------| | redhat-operator-index | 4.8 | 79 | 1717 | | | 4.9 | 83 | 1238 | | | 4.10 | 95 | 1236 | | | 4.11 | 92 | 1064 | | | 4.12 | 66 | 905 | | certified-operator-index|4.8 |210 | 657 | | | 4.9 | 143 | 375 | | | 4.10 | 131 | 329 | | | 4.11 | 106 | 283 | | | 4.12 | 84 | 230 | | redhat-marketplace-index|4.8 | 124 | 363 | | | 4.9 | 56 | 120 | | | 4.10 | 50 | 100 | | | 4.11 | 42 | 88 | | | 4.12 | 38 | 75 | | community-operator-index|4.8 | 218 | 3286 | | | 4.9 | 180 | 2041 | | | 4.10 | 182 | 2025 | | | 4.11 | 177 | 1957 | | | 4.12 | 170 | 1838 | ```vega { "encoding": {"color": {"field": "cat", "quantitative": "nominal"}}, "data": { "values": [ { "cat": "redhat-operator-index", "version": "4.08", "packages": 79, "bundles": 1717}, { "cat": "redhat-operator-index", "version": "4.09", "packages": 83, "bundles": 1238}, { "cat": "redhat-operator-index", "version": "4.10", "packages": 95, "bundles": 1236}, { "cat": "redhat-operator-index", "version": "4.11", "packages": 92, "bundles": 1064}, { "cat": "redhat-operator-index", "version": "4.12", "packages": 66, "bundles": 905}, { "cat": "certified-operator-index", "version": "4.08", "packages": 210, "bundles": 657}, { "cat": "certified-operator-index", "version": "4.09", "packages": 143, "bundles": 375}, { "cat": "certified-operator-index", "version": "4.10", "packages": 131, "bundles": 329}, { "cat": "certified-operator-index", "version": "4.11", "packages": 106, "bundles": 283}, { "cat": "certified-operator-index", "version": "4.12", "packages": 84, "bundles": 230}, { "cat": "redhat-marketplace-index", "version": "4.08", "packages": 124, "bundles": 363}, { "cat": "redhat-marketplace-index", "version": "4.09", "packages": 56, "bundles": 120}, { "cat": "redhat-marketplace-index", "version": "4.10", "packages": 50, "bundles": 100}, { "cat": "redhat-marketplace-index", "version": "4.11", "packages": 42, "bundles": 88}, { "cat": "redhat-marketplace-index", "version": "4.12", "packages": 38, "bundles": 75}, { "cat": "community-operator-index", "version": "4.08", "packages": 218, "bundles": 3286}, { "cat": "community-operator-index", "version": "4.09", "packages": 180, "bundles": 2041}, { "cat": "community-operator-index", "version": "4.10", "packages": 182, "bundles": 2025}, { "cat": "community-operator-index", "version": "4.11", "packages": 177, "bundles": 1957}, { "cat": "community-operator-index", "version": "4.12", "packages": 170, "bundles": 1838} ] }, "layer": [ { "mark": "line", "encoding": { "x": {"field": "version", "type": "nominal", "title": "version"}, "y": {"field": "bundles", "type": "quantitative", "title": "bundles"} } }, { "mark": "line", "encoding": { "x": {"field": "version", "type": "nominal", "title": "version"}, "y": {"field": "packages", "type": "quantitative", "title": "packages"} } } ] } ```