Test CPU settings for all modules and sidecars for Sunflower release
Overview
This documents contains PTF investigation results of the approach for setting SOFT CPU limits for most modules and sidecars to 64 or 128. The goal is to identify potential bottlenecks, performance degradation or instability in the system. Report created in scope of
PERF-1213: Test CPU settings for all modules and sidecars for Sunflower releaseClosed
Parameter values for CPU were tested using the master script, which includes 315 key flows designed to measure response times.
Summary
All tests completed as expected.
Multiple tests with defined CPU values (0, 64, 128) demonstrated that response times fluctuated between runs, showing no consistent correlation with the CPU parameter. So there's no obvious performance boost on some configuration.
No memory leaks detected during the tests
CPU utilization of the services increased proportionally to the applied load.
DB CPU was mostly on the same level, 67% in spikes.
Recommendations
As we cannot see difference in performance between tests with different CPU values we may choose cpu = 64 to minimize the number of EC2 instances during cluster start, except of those services where CPU values should be higher like folio-keycloak-b, mod-consortia-keycloak, mod-inventory, mod-inventory-storage, mod-circulation-b.
Test Runs
Test # | CPU value | Status |
|---|---|---|
Test №1 | 0 | Completed |
Test №2 | 64 | Completed |
Test №3 | 128 | Completed |
Test Results
Test # | CPU value | Delta on all flows, Average % |
|---|---|---|
Test №1 | 0 | Baseline |
Test №2 | 64 vs 0 | -1% (slight improvement) |
Test №3 | 128 vs 0 | 0% (no difference) |
The graph summarize the comparison of detailed results. We observe that deltas close to 0 for most of flows in both tests with CPU values 64 and 128. Spikes for some specific flows on the graph are temporary and disappear from test to test.
This table contains response times and deltas for main master script flows and main API requests