diff options
| author | Michael Anthony Knyszek <mknyszek@google.com> | 2022-03-30 22:10:49 +0000 |
|---|---|---|
| committer | Michael Knyszek <mknyszek@google.com> | 2022-05-03 15:13:45 +0000 |
| commit | b4d81147d8dc26c8f7d6822b6249311d569af1de (patch) | |
| tree | 214f6f344034a5ba529920211c50510f730b7661 /src/runtime/mpagealloc_64bit.go | |
| parent | 7e4bc74119a431f3f0dd3dadd05bbb045969190d (diff) | |
| download | go-b4d81147d8dc26c8f7d6822b6249311d569af1de.tar.xz | |
runtime: make the scavenger and allocator respect the memory limit
This change does everything necessary to make the memory allocator and
the scavenger respect the memory limit. In particular, it:
- Adds a second goal for the background scavenge that's based on the
memory limit, setting a target 5% below the limit to make sure it's
working hard when the application is close to it.
- Makes span allocation assist the scavenger if the next allocation is
about to put total memory use above the memory limit.
- Measures any scavenge assist time and adds it to GC assist time for
the sake of GC CPU limiting, to avoid a death spiral as a result of
scavenging too much.
All of these changes have a relatively small impact, but each is
intimately related and thus benefit from being done together.
For #48409.
Change-Id: I35517a752f74dd12a151dd620f102c77e095d3e8
Reviewed-on: https://go-review.googlesource.com/c/go/+/397017
Reviewed-by: Michael Pratt <mpratt@google.com>
Run-TryBot: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Diffstat (limited to 'src/runtime/mpagealloc_64bit.go')
0 files changed, 0 insertions, 0 deletions
