I've been trying to root cause an OOM condition.  My process is running 
within a cgroup with a 4gb limit.  Occasionally that limit gets hit.  I 
added a cgroup listener to watch for memory usage and create a pprof and 
core dump.

The pprof shows just a few hundred megs of "in-use" memory, however when I 
open the core dump with viewcore I'm seeing around 3.3gb of free spans that 
are being retained.  "kept for reuse by Go"..

I've got GOGC set to 50 -- but my understanding is that just controls when 
a GC kicks off -- not when memory will be returned to the OS.   

Is there some sort of behavior a program can do to create this type of 
situation?  or a way to give a hint to the GC  .. "hey... give it back!" 
:)   

Thanks for any ideas or thoughts!

-- 
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 golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/5368c3f1-1734-4ace-a97e-2b9fbcc56343n%40googlegroups.com.

Reply via email to