I'm trying out a build of my code under go1.12beta1 and resident memory usage is not too dramatically different than under go1.11. The wording on this release note made me think the runtime was going to continually gobble up memory and not release any until the system had nearly run out, but that doesn't appear to be the case. I would still be interested to learn more about the details on the new behavior.
The process in question typically uses more memory at start as it has to sync a bunch of data with a backend, and then after a few minutes it reaches a steady-state where it is only sending updates. Prior to go1.12 I would see the memory usage grow to its maximum shortly after start and then drop ~10% a few minutes after reaching steady-state. In go1.12 it spends a bit more time at the elevated memory usage, but appears to gradually reduce memory over time. Thanks, Aaron On Thursday, December 20, 2018 at 11:16:47 AM UTC-8, Aaron Beitch wrote: > > Hello, > > This caught my eye from the go1.12beta1 release notes: > > 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. > > > I work on Go programs that are deployed on sometimes memory-constrained > Linux systems that run many other non-Go processes. At least the optics of > a process consuming nearly all system memory is concerning to me. In > addition, I'm concerned about how quickly the go runtime will react to a > sudden increase in memory pressure. > > Can I get a pointer to any documentation or code that discusses what > triggers the runtime to release memory and how quickly it will react? Can > this behavior be controlled by any flags? > > One solution we could implement is to periodically run debug.FreeOSMemory, > but that doesn't sound so nice. > > Thanks, > Aaron > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
