Disable AppendVec recycling under accounts caching #15188
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
For some reason, recycling
AppendVec
seems to accmulate RSS usage:The followings are
top
excerpts over the time for easier illustration. (I have somewhat more detailed metrics on the tested machines, if wanted)Without recycling (this pr; good)
With recycling (current code; bad;):
Note that there is still other leak sources... So the above good excerpt still increases RSS gradually.
The odd fact:
du path/to/accounts
for the good validator, it doesn't for the bad validator. Howeverpmap -p
does match tols -l path/to/accounts
for the both good and bad validator.du
output is usually larger thanSHR
for the bad validator, so it's looks like mmap is counted toward RSS, considering bad validator 's unexplained leak pace.I tried
madvise DONTNEED
to tell linux kernel to free seeing this quote; but failed. (I thought undue mem usage is due to we don't discard dirty pages by msync or munmap between recyling)https://man7.org/linux/man-pages/man2/madvise.2.html:
I also looked
/proc/NNN/smaps
somewhat in detail; but no definitive clue...Summary of Changes
Considering AccountsCaching is the future, I think disabling recycling won't hurt as much. (At least, such a validator can catchup with mainnet-beta; will run perf system test).
context: #14366