-
Notifications
You must be signed in to change notification settings - Fork 78
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
Performance optimizations #61
Conversation
Codecov Report
@@ Coverage Diff @@
## main #61 +/- ##
==========================================
- Coverage 48.77% 46.82% -1.95%
==========================================
Files 15 15
Lines 1060 1119 +59
==========================================
+ Hits 517 524 +7
- Misses 501 548 +47
- Partials 42 47 +5
Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
db4e77f
to
1edd26c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Great work!
I just wanted to report some numbers, with this branch on my tests setup, this reduces the overall overhead of the instrumentation to 30% on 10,000 QPS. I think it's pretty incredible. All we do in the test is just accept the request and ignore it. Running locally, both tempo and wrk2 take more CPU now than the instrumenter. |
Addresses #41 .
Benchs are measured without traces (only metrics submission).
Taking the results in the main branch as base bench (20% CPU in my local dev environment), I added some changes that improved the CPU consumption:
BPF_WAKEUP_LEN
). This reduced the CPU from ~13% to ~7%.In addition, the users can now enable a Pprof port by setting the
PROFILE_PORT
option (seeprofiling.md
). This will facilitate asking our users for performance stats for our own offline analysis.