-
Notifications
You must be signed in to change notification settings - Fork 802
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
Streaming queries are very inefficient #1195
Comments
Is this still a thing? |
I haven't profiled recently, but the code still looks the same to me. cortex/pkg/querier/batch/merge.go Lines 24 to 36 in 20f8931
|
Isn't this a major problem, when cpu/memory/bandwith explodes like you described? Especially since this is considered a good default (or even is the default)? 🤔 Edit: It is literally the default |
Depends how much you use the ruler (or queries) compared to everything else. Also for the blocks store (which we recommend over chunks), I don't think you will go through that path unless you also turn on the experimental |
Ok cool I misunderstood I thought this also applies to block storage users |
I figured out what was happening in the code, and also why it hit ruler more than queriers - it is maximally inefficient for instant queries. |
I noticed high resource usage in
ruler
and traced it back to a change where I turned on:Upon reverting this change, CPU went down to a third of what it was, memory down to a quarter and network traffic to a fifth.
Profiling suggests vast amounts of memory being used here:
I am unclear why those sizes have
*promchunk.BatchSize
- they are allocating slices ofBatch
which are already sized that big.The text was updated successfully, but these errors were encountered: