Details
-
Improvement
-
Resolution: Done
-
Critical
-
4.5.0
-
build 2510
Description
In some circumstances where system memory is plentiful and query throughput is high, it can be useful to hint the go runtime to be a bit more lax with heap growth. This can be achieved both through GOGC and programmatically.
The request here is to add a tuneable, accessible through HTTP like other settings, which adjusts GOGC without a restart.
Note that the indexer has a similar tuneable: "indexer.settings.gc_percent".
From a recent test where we interposed on cbq-engine and set GOGC:
Baseline: 16943 ops/s at 11442.2 µsec max 95%.
GOGC 200: 18557 ops/s at 10866µsec max95%
GOGC 400: 19814 ops/s at 10501.4µsec max 95%
GOGC 800: 20512 ops/s at 9759µsec max 95%
GOGC 1600: 19866 ops/s at 10435.8µsec max 95%
There were also several runs going the other way:
GOGC 20: 12808 ops/s with 43883.8 µsec at max 95%.
GOGC 80: 14815 ops/s at 18759µsec max 95% latency
- the "80" result had missed setting some other tuneables that were set with the other runs so those results shouldn't necessarily be trusted, but notably it didn't seem to affect the results.
Attachments
Issue Links
- relates to
-
MB-21293 GC in query engine causes 30-40% drop in throughput and CPU utilization
- Closed