-
Notifications
You must be signed in to change notification settings - Fork 1.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
Memory overconsuming #4445
Comments
We have the same issue, Lotus consumes 96 G of memory and re-sstart does not fix it, it consumes them again PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND |
Hi @ArseniiPetrovich @astudnev, what you are likely seeing is a combination of:
Since go1.12, go started using the These memory pages are effectively free, but not accounted as so in most tooling, including most popular cgroups stats. We suspect that might also make the OOMKiller kick in when it shouldn't. Someone blogged about this: https://www.bwplotka.dev/2019/golang-memory-monitoring/ All of this this was problematic and caused quite a bit of misunderstanding in the community. Take a look at this list of related For that reason, as of go1.16, the go runtime will default to using Since you're likely building with go1.15.5, can you try restarting two Lotus instances at the same time (ideally with similar repo sizes), one of them with the following env variable, which unlocks this behaviour manually?
If you can report back and ideally post some comparative charts, it would be very welcome. |
I think this issue can be closed now, since the issue with data-transfers being RAM hungry is fixed! #rengjøring |
Please open a new ticket if you are running into this issue on the latest version of lotus! |
Describe the bug
We are a Protofire, and we are hosting managed Lotus nodes for several months already. One of our nodes are used internally for creating snapshots and never serves any RPC requests. Sometimes this node grab a massive amount of memory and do not return it back to the OS. A restart fixes this, but it is not a great workround. Is there a way to determine why a running node is holding memory? Thank you!
To Reproduce
Steps to reproduce the behavior:
lotus daemon
lotus chain export --tipset @$( lotus chain list --count 50 --format "<height>" | head -n1 ) --recent-stateroots 900 --skip-old-msgs /data/ipfs/lotus-hot.car
on an hourly basisExpected behavior
The snapshot used to be created in 7 mins or less and now it's taking way more time to complete.
Version (run
lotus version
):10.2
The text was updated successfully, but these errors were encountered: