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

Query: Skip formatting strings if debug logging is disabled #7678

Conversation

wallee94
Copy link
Contributor

@wallee94 wallee94 commented Aug 30, 2024

After upgrading from v0.34.1 to v0.36.0, I see some queriers using about 10 times more CPU than before. These queriers only receive ~16 instant http q/s and have over 20 endpoints.

A pprof profile showed that the GC is using most of the CPU, so I ran a pprof heap alloc_space, and the problem seems to be fmt.Sprintf used in the debug message in the store proxy, even if debug logging is disabled.

image

  • I added CHANGELOG entry for this change.
  • Change is not relevant to the end user.

Changes

I added a validation to skip the string formatting if debug logging is disabled.

Verification

I deployed a patch with this change and it definitely fixed the CPU usage. This graph is avg CPU usage after removing the formatting in matchingStores and then after removing it in storeMatches and storeMatchDebugMetadata.

image

yeya24
yeya24 previously approved these changes Aug 30, 2024
Copy link
Contributor

@yeya24 yeya24 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. This LGTM. Thanks for fixing the issue

@MichaHoffmann
Copy link
Contributor

Do we actually need those debugging messages at all?

saswatamcode
saswatamcode previously approved these changes Sep 2, 2024
pkg/store/proxy.go Outdated Show resolved Hide resolved
Signed-off-by: Walther Lee <[email protected]>
Copy link
Member

@saswatamcode saswatamcode left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@saswatamcode saswatamcode merged commit 55d0e09 into thanos-io:main Oct 10, 2024
21 of 22 checks passed
jnyi pushed a commit to jnyi/thanos that referenced this pull request Oct 17, 2024
…o#7678)

* skip formatting debug str if debug logging is disabled

Signed-off-by: Walther Lee <[email protected]>

* make statis strings const

Signed-off-by: Walther Lee <[email protected]>

---------

Signed-off-by: Walther Lee <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants