-
-
Notifications
You must be signed in to change notification settings - Fork 3k
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
Providers memory leak #2750
Comments
About 23h later: 16098 ed 20 0 3420.7m 1.097g 2.6 7.0 118:41.41 S ipfs hopefully serial debug profiles help. Included: curl localhost:5001/debug/metrics/prometheus > ipfs.prom Ed |
It looks like there is goroutine leak. There are over 600 active goroutines. Some of them are in IO Wait for almost 100 hours:
There are also lots of goroutines running in yamux. Here is full goroutine stack dump from this report: https://gist.github.com/Kubuxu/da3c88d618fc534198249ad833ad79d9 |
It weren't goroutines Goroutines at the dump time position frequency list:
Generated with: grep -e '^goroutine' ipfs.stacks -A1 | grep -v '^goroutine' | grep -v -- '--' | sort| sed 's/[^\(]*$//' | uniq -c | sort -bg | tac
|
|
Okay trying the above binary. |
I was wrong. The yamux isn't leaking. The memory leak has to be somewhere lease IMO. Looks like there are 3 yamux + 1 IO goroutine per connection. |
There is 400MB of data on heap. It is still too much but it is not 3G the htop was reporting. Are you sure that you looked on RES (resident memory) not virtual? |
A lot of data is provider dht data, full graph here |
From the top line posted in the second snapshot the RESident memory was 1.097g. |
Yeah, this looks like a "leak" on the providers manager. This is something i'm starting to work on fixing |
This should be resolved now, #2860 has merged |
go-ipfs compiled from git on the 17th (package says 0.4.2.r2.gabeea4f-1) running 4.5 days with 98 connections (great) but is using 3110m, as reported by top, which seems a bit extreme.
16098 ed 20 0 3122.9m 846.7m 0.7 5.3 88:13.21 S ipfs
Ran the commands from:
https://github.com/ipfs/go-ipfs/blob/master/debug-guide.md
and packaged the files (called the heap dump ipfs.heap so as not to overwrite the ipfs.stack file.
Hope this helps
Ed
ipfs.3g.tar.gz
The text was updated successfully, but these errors were encountered: