You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As mentioned in #35, agave-validator (previously solana-validator) spawns lots of thread pools / tokio runtimes. For the majority of these, the size of the pool/runtime is specified by a constant in code, or configured to scale with the number of cores on the machine.
Some of sizes were carefully chosen and may still be an appropriate amount. Other values might have been unintentionally set to scale with number of cores (this is the default behavior when the number of threads is not specifically set). Or, some values might have become "incorrect" as the workload of the cluster changes / refactors occur and shift where heavier operations occur.
In any case, being able to control these sizes could be a powerful knob to turn.
Proposed Solution
Add CLI flags + plumbing for thread pool size parameters
The addition of the CLI flags should NOT alter any thread pool sizes
The flags should probably be hidden, maybe forever. Or, if we make them public, they'll need a warning along the lines of "you should only be using this if you know what you're doing"
Finally, having the ability to configure all sizes should make the rayon-threadlimit crate obsolete, altho we may need to follow a proper deprecation sequence for that crate
The text was updated successfully, but these errors were encountered:
steviez
changed the title
Allow configuration of all thread-pool sizes via CLI
Allow configuration of all validator thread-pool sizes via CLI
Oct 30, 2024
Problem
As mentioned in #35,
agave-validator
(previouslysolana-validator
) spawns lots of thread pools / tokio runtimes. For the majority of these, the size of the pool/runtime is specified by a constant in code, or configured to scale with the number of cores on the machine.Some of sizes were carefully chosen and may still be an appropriate amount. Other values might have been unintentionally set to scale with number of cores (this is the default behavior when the number of threads is not specifically set). Or, some values might have become "incorrect" as the workload of the cluster changes / refactors occur and shift where heavier operations occur.
In any case, being able to control these sizes could be a powerful knob to turn.
Proposed Solution
The text was updated successfully, but these errors were encountered: