GODEBUG=allocfreetrace may be what you are looking for. You might want to check the output with sort | uniq -c.
On Tuesday, February 9, 2021 at 8:05:23 PM UTC+1 Miles Hex wrote: > > Hi, > > I'm using golang (1.15.6) to write a daemon that handle system > task(network, time, updates, etc..) in embedded device (an onion omega > 2+), and i'm encountering a small memory leak that i'm unable to identify > and fix. > The device is using linux 4.14.171, the architecture is mips. > > At first i used "go tool pprof" and the memory profile but the "inuse" > index is always empty, and that kinda match my expectation since the > application spend most of his time idle awaiting commands/event (i must add > that he leak occur even when the application is idle). I also checked the > number of goroutine that remains constant. > > I then added some logs to try to understand when this allocation occurs > (and the subsequent leak), but i'm unable to make sense of the data. > I also collected a couple of heapdump that i'm trying to analyze with > "github.com/temorfeouz/heapdump14" (which is a fork of > https://github.com/randall77/heapdump14, and the only tool i find that > can open heapdump of go 1.15) > > Following is the (partial) memstat data: > > MemStast Before: > "HeapAlloc": 1811448, > "HeapSys": 7176192, > "HeapIdle": 4399104, > "HeapInuse": 2777088, > "HeapReleased": 3358720, > "HeapObjects": 11200, > "StackInuse": 1212416, > "StackSys": 1212416, > > MemStat After 7 days: > "HeapAlloc": 2033048, > "HeapSys": 11403264, > "HeapIdle": 8257536, > "HeapInuse": 3145728, > "HeapReleased": 8257536, > "HeapObjects": 13060, > "StackInuse": 1179648, > "StackSys": 1179648, > > I also have the summary from the two heapdump > Before: > Heap size: 8.0 MB bytes > Heap live: 1.8 MB bytes > Heap objects: 11496 > Reachable objects: 10492 > Reachable size: 1.6 MB bytes > > After 7 days: > Heap size: 12.0 MB bytes > Heap live: 2.0 MB bytes > Heap objects: 13198 > Reachable objects: 10454 > Reachable size: 1.6 MB bytes > > I have collected a lot more data, including all the profile made available > from the go runtime and various system information. > > If i'm reading this data correctly there is a memory leak as the heap si > growing but i'm not sure how to find it! I tough i could try to diff the > two heapdump with excel but the tool that i'm using is not very "precise" > and a lot of type information seem to be lost. > > I don't know how to make sense of this data, what would your next step? > I'm quite new in the golang ecosystem and i'm unsure how to move from here. > > Thanks. > > > > > > -- 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/411bdf11-e397-40e6-b041-7c42edddd89fn%40googlegroups.com.