[epic] Improve openQA performance
This is a general topic. The purpose of this ticket is mainly identifying performance issues which are slowing down work with openQA. It also already gives a few hints how we could deal with them (feel free to extend the list).
- Identify performance issues in openQA.
- Consider the 'test writer workflow', which involves restarting jobs quite often. Just try to create a new test and pay attention to performance issues in particular.
- Beside the web UI, also scheduler and worker performance are important (eg. for restarting a job).
- Investigate the issues in detail.
- Measure SQL performance.
- Enable nytprof for server-side profiling. (Be careful, this tool generates lots of data!)
- Use web-developer tools to for client-side profiling.
- Fix issues
- Avoid polling. (We already use websockets and similar ways to avoid it, but not in all places where it might make sense.)
- Optimize database queries.
- Make use of lazy loading where it makes sense.
It is likely most appropriate to create separate sub tickets for tasks 2. and 3. when concrete issues are identified.
Issues I'm already aware of¶
The markdown renderer is very slow. It is the main reason pages containing lots of comments are slow. Adding a pagination on the group overview already provides a workaround. But still, why is it so horribly show?-> https://github.com/os-autoinst/openQA/pull/2232
Loading the 'All tests' page is also a bit slow. Note that enabling server-side rendering for this full-featured table didn't help much (when I tried it).
The time to restart a job has gotten worse since recent changes. This is annoying when having to restart a job quite often (locally). Definitely needs investigation.
The interactive mode is a mix of being broken and just slow.
Feel free to add more from your experience.
- Status changed from Blocked to Workable
- Assignee deleted (
- Target version set to future
All present subtasks are fixed. We use more "lazy loading" a lot which makes the UI more responsive. I now in particular wonder about "Avoid polling" where we might see potential for this. Any specific ideas anyone?
See for the reason of tracker change: http://mailman.suse.de/mailman/private/qa-sle/2020-October/002722.html