dashboard
dashboard copied to clipboard
Possible performance degradation at edit configmap
Setup
- Rancher version: 2.7.5
- Rancher UI Extensions: default
- Browser type & version: Firefox 115
Describe the bug
After updating dashboard from 2.6.1 to 2.7.5 I noticed very long page loading while trying to edit config on configmaps with lots of values. So big, that browser prompts to stop that tab. After pressing tab stop ui is immediately loaded, but values are not editable.
To Reproduce
- get k8s cluster
- install rancher dashboard
- create cm with
kv='';for n in $(seq 1 100);do kv="$kv --from-literal=key${n}=config${n}";done;kubectl create configmap big-cm $kv -n default - open it in rancher
Result
default view and edit yaml pages are loaded instantly edit config ui hangs tab for 30+ seconds
Expected Result
edit config ui loads in less than 10 seconds and allows to edit and save values
Screenshots
N/A
Additional context
Not a frontender, but it sounds like you creating an instance of codemirror editor for each value field?
Adding replicas didn't help, here's metrics:
Would you be able to look at the browser's dev tools window's Network tab and provide a screenshot of the requests that have been made? There may be one in there that's stuck on pending or takes a long time to complete
Here:
No new requests after loading finishes
Console errors most likely aren't relevant, as they are way before I got to cm. Here latest lines from it:
Would you be able to select the XHR tab on the right within the Network tab, hit refresh and post a screenshot of those network requests (might need a couple to show them all)?
Is this only an issue when navigating to the page (if so how many config maps are in the cluster) or also when refreshing?
Issue not going away after refreshing. It loads slightly faster after I enabled rancher experimental garbage collection in global settings, but that may be just a wishful thinking.
665 configmaps 5700+ total resources
To be validated against server-side pagination feature. I'm assuming we're fetching all of a resource when we don't need to. Those cases will be removed as part of the pagination feature
Linking https://github.com/rancher/dashboard/issues/9965
Acceptance Criteria:
- Enable server-side pagination
- Create 1 large config map given description
- Confirm loading config map list is prompt
- Confirm navigating to the large config map is prompt
- Confirm refresh on config map detail page for large config map is prompt
- Repeat above step but with 600 large config maps.