Details
-
Task
-
Status: Closed
-
Medium
-
Resolution: Done
-
None
Description
Execute use-case performance profiling (focussed but no limited to registration and module sync use-cases).
we need to understand were the time is spent to allow effective future performance improvements.
Number of Modules (mocked DMI) 180
detailed (sub) use cases to investigate/compare
- Register 1 (first) batch of 100 cm-handles with no parallelism (level =1)
- include breakdown for each individual cm-handle being processed (percentiles, check with kissand )
- Register 1 (second) batch of 100 cm-handles with no parallelism
- Register 1 (nth) batch of 100 cm-handles with no parallelism after several
thousand cm handles have already been registered and models synchronized
- Repeat 3 with a parallelism of 2 or 3 to see itis effect(iveness)
Tooling, need to be decided, should be non-invasive as much as possible. Options
- Enable logging on public method exit and entry point (@sourabh can try this)
- Need help from ecsakoc and/or kissand to consider tools used by ESH in other use cases
- Visual VM (thread focus)
- K6 (statistics on rest endpoints)
A/C
- Mocked number of Modules = 180
Update dmi-plugin-perf-stub/files/moduleResourcesResponse.json to include 180 modules - Clear reporting on each use-case reviewed by Team and stakeholder
- Tooling: Java Visual VM (can be used locally with IDE)
- Report : Time spent in methods (Suggested monitor 1 batch at 100, 5000, 10000, parallelism 1 and 10)
- No code changes to reporting, only external tool
Out-of-Sope
- Configuration (DB) changes, need to be handle separate