mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-21 14:44:00 +00:00
app/vmselect: log the total available memory for concurrent requests on not enough memory
errors
This should simplify root cause analysis
This commit is contained in:
parent
ad6290953c
commit
b9c8f6bf34
1 changed files with 2 additions and 1 deletions
|
@ -686,9 +686,10 @@ func evalRollupFuncWithMetricExpr(ec *EvalConfig, name string, rf rollupFunc,
|
||||||
if !rml.Get(uint64(rollupMemorySize)) {
|
if !rml.Get(uint64(rollupMemorySize)) {
|
||||||
rss.Cancel()
|
rss.Cancel()
|
||||||
return nil, fmt.Errorf("not enough memory for processing %d data points across %d time series with %d points in each time series; "+
|
return nil, fmt.Errorf("not enough memory for processing %d data points across %d time series with %d points in each time series; "+
|
||||||
|
"total available memory for concurrent requests: %d bytes; "+
|
||||||
"possible solutions are: reducing the number of matching time series; switching to node with more RAM; "+
|
"possible solutions are: reducing the number of matching time series; switching to node with more RAM; "+
|
||||||
"increasing -memory.allowedPercent; increasing `step` query arg (%gs)",
|
"increasing -memory.allowedPercent; increasing `step` query arg (%gs)",
|
||||||
rollupPoints, timeseriesLen*len(rcs), pointsPerTimeseries, float64(ec.Step)/1e3)
|
rollupPoints, timeseriesLen*len(rcs), pointsPerTimeseries, rml.MaxSize, float64(ec.Step)/1e3)
|
||||||
}
|
}
|
||||||
defer rml.Put(uint64(rollupMemorySize))
|
defer rml.Put(uint64(rollupMemorySize))
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue