-
Notifications
You must be signed in to change notification settings - Fork 3.9k
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
Lower http worker thread priority #14556
Labels
Milestone
Comments
im-0
added a commit
to im-0/solana
that referenced
this issue
Oct 27, 2021
im-0
added a commit
to im-0/solana
that referenced
this issue
Oct 27, 2021
Please check #21019 |
im-0
added a commit
to im-0/solana
that referenced
this issue
Oct 28, 2021
im-0
added a commit
to im-0/solana
that referenced
this issue
Oct 28, 2021
im-0
added a commit
to im-0/solana
that referenced
this issue
Oct 29, 2021
im-0
added a commit
to im-0/solana
that referenced
this issue
Oct 29, 2021
im-0
added a commit
to im-0/solana
that referenced
this issue
Nov 3, 2021
im-0
added a commit
to im-0/solana
that referenced
this issue
Nov 3, 2021
t-nelson
pushed a commit
that referenced
this issue
Nov 4, 2021
im-0
added a commit
to im-0/solana
that referenced
this issue
Nov 11, 2021
dankelleher
pushed a commit
to identity-com/solana
that referenced
this issue
Nov 24, 2021
This issue has been automatically locked since there has not been any activity in past 7 days after it was closed. Please open a new issue for related bugs. |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Problem
http worker thread are scheduled equally as other threads. This can stall the validator pretty easily by indirectly chogging the machine via cpu usage saturation.
If I manually
renice
d the http threads*, I observed generally more favorable validator sync status even under the heavy load of rpc reqs.*:
$ ps -e -T | grep http | awk '{print $2}' | while read pid; do sudo renice -n 20 -p $pid; done
Proposed Solution
Just lower the thread priority via some platform-dependant crate.
Be careful a bit for the lock priority inversion; but it should generally better than nothing.
At least, we just need dictonomy of critical replay threads (including account background service) and other threads (http worker) and make sure replay threads never depend on other threads. (strictly, it does still via AccountsDB locks).
Also, as far as I checked our rpc generally doesn't lock except obvious one (like getProgramAccounts).
So, not that super high priority.
Anyway, I managed the validator with getConfirmedBlock, so lowering serialization done by the http worker thread will be one of the few wins from here.
The text was updated successfully, but these errors were encountered: