-
Notifications
You must be signed in to change notification settings - Fork 810
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
Lighthouse OOM mitigations #7053
Comments
Merged status processing fix to |
Just thought of another source of unbounded state lookups: It might be time to build a dedicated in-memory DAG of block roots which we can use instead of the state-based block iterators. cc @dapplion |
Inactivity leak penalties are applied at each epoch. The longer were in non-finality the heavier the penalties are, so not only validator balances are changing at epoch boundaries, but also potentially effective balances. This could be one reason epoch boundary state diffs are so large, esp considering how large the validator set is on holesky. |
Jimmy and I had a look a the diffs using Mostly balances and inactivity scores.
We've started working on a |
Latest investigation reveals sources of state cache miss:
Ideas to fix:
|
Made a PR for this here #7066 |
I've made a PR here that tries to make the state cache more intelligent, it's a bigger/more complicated change |
Short term plan:
load_parent
inblock_verification.rs
)--state-cache-size 4
to avoid bad state cache pruning logic that is keeping 128x 180MB epoch boundary states around (~24GB of states).Point (1) is intended to fix an OOM that happens to nodes that are in sync and forced to process junk.
Point (2) fixes OOMs during head sync due to lots of epoch boundary states being retain.
To investigate later:
balances
andinactivity_scores
.Future plans (long-term fixes):
cull
method on the 20% largest states).cull
so that it doesn't hang on to so many useless epoch boundary states.The text was updated successfully, but these errors were encountered: