Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ensure APM Server makes full usage of available CPU resources #9182

Closed
2 tasks done
simitt opened this issue Sep 23, 2022 · 1 comment · Fixed by #9358
Closed
2 tasks done

Ensure APM Server makes full usage of available CPU resources #9182

simitt opened this issue Sep 23, 2022 · 1 comment · Fixed by #9358

Comments

@simitt
Copy link
Contributor

simitt commented Sep 23, 2022

Previous benchmarks indicate that the APM Server performs better when scaling horizontally than vertically. This is a meta issue collecting steps necessary to ensure APM Server's throughput scales well when scaling the server's available CPU resources up.

Previous investigations identified the modelindexer to be a bottle neck, and two action items were identified:

The improvements need to be benchmarked; the goal is to provide full resource usage and (almost) linear scaling for APM Server's up to 32GB of RAM (with aliquot CPU time) on ESS.

@kruskall
Copy link
Member

kruskall commented Dec 7, 2022

I've reviewed the code in the linked PRs and looked at the trace files for specific benchmarks like BenchmarkModelIndexer.
I confirm the available CPU cores are being used efficiently and tasks seem to be parallelized correctly.

I could not find any issues but I noticed the flush goroutine for the active indexers (introduced in #9318) being always busy.
A goroutine being active might slow down GC and increase memory usage. I don't think that's going to be a big issue here due to the flush timer channel but I noticed some improvements and opened a PR to reduce the cpu time spent in the flush gorutine: #9760

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants