Skip to content

doc: Go 1.12 runtimes notes contains contradiction about RSS and memory usage #29337

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

Closed
DmitriyMV opened this issue Dec 19, 2018 · 3 comments
Closed
Labels
Documentation Issues describing a change to documentation. FrozenDueToAge NeedsFix The path to resolution is known, but the work has not been done. release-blocker
Milestone

Comments

@DmitriyMV
Copy link
Contributor

DmitriyMV commented Dec 19, 2018

Quoting (source):

The Go runtime now releases memory back to the operating system more aggressively, particularly in response to large allocations that can't reuse existing heap space.

On Linux, the Go runtime now releases memory back to the operating system only when the OS is under memory pressure. This is more efficient, but means a process's RSS (resident set size) won't decrease unless the OS is running out of memory.

IMHO - the second paragraph contradicts the first. I think it would be good to clarify the second part a bit more, or reword entire note entirely. Right now it worries people.

@gopherbot gopherbot added the Documentation Issues describing a change to documentation. label Dec 19, 2018
@DmitriyMV DmitriyMV changed the title doc: Go 1.12 runtimes notes f doc: Go 1.12 runtimes notes contains contradiction about RSS and memory usage Dec 19, 2018
@ALTree ALTree added this to the Go1.12 milestone Dec 19, 2018
@ALTree ALTree added the NeedsDecision Feedback is required from experts, contributors, and/or the community before a change can be made. label Dec 19, 2018
@ALTree
Copy link
Member

ALTree commented Dec 19, 2018

cc @aclements

@aclements
Copy link
Member

Hmm. I see what you're saying. The tricky part is that there are actually two levels of "released to the OS" on Linux: there's "release this if you need it" and there's "release this right now". Go now uses "release this if you need it" on Linux instead of "release this right now" and is much more aggressive about marking memory as "release this if you need it." Maybe the second bullet needs to be reworded so that it's not about when the Go runtime itself releases memory...

/cc @mknyszek

@aclements aclements added NeedsFix The path to resolution is known, but the work has not been done. and removed NeedsDecision Feedback is required from experts, contributors, and/or the community before a change can be made. labels Dec 19, 2018
@aclements aclements self-assigned this Dec 19, 2018
@gopherbot
Copy link
Contributor

Change https://golang.org/cl/155438 mentions this issue: doc: go1.12: clarify use of MADV_FREE

@golang golang locked and limited conversation to collaborators Jan 3, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Documentation Issues describing a change to documentation. FrozenDueToAge NeedsFix The path to resolution is known, but the work has not been done. release-blocker
Projects
None yet
Development

No branches or pull requests

5 participants