Hardware Tuning
Validators in Mainnet and Testnet always need to have post-provisioning hardware optimizations to make sure they are performing at maximum capacity on Solana.
The list below is not exhaustive, but it contains most of the optimizations that the Hayek Validator Kit automates on new servers using the Ansible role hw_tuner, which is run automatically with every client playbook.
These hardware optimizations are already part of the Hayek Validator Kit, and you don't have to run them manually on your validator server. This page is for information purposes only.
References
The community Solana Hardware Compatibility List
A popular Solana Discord thread about Optimizing Your Solana Validator Setup
A popular Solana Discord thread about isolating one core for poh.
Unattended Upgrades
After Ubuntu 24, you need to make sure you disable unattended upgrades on your validator server.
Disable Manually
First you must check the file /etc/apt/apt.conf.d/99needrestart and make sure there's no -m u CLI option there. See this Ubuntu official forum discussion for details.
cat /etc/apt/apt.conf.d/99needrestartIf you see a line like the one blelow (which contains -m u)
DPkg::Post-Invoke {"test -x /usr/lib/needrestart/apt-pinvoke && /usr/lib/needrestart/apt-pinvoke -m u || true"; };Edit the file and remove -m u
Save the file and exit nano: CTRL+o, ENTER, CTROL+x , and check again:
Disable with Ansible
You can accomplish the same by running the following Ansible task. See this Solana Discord Validator Support thread for details on the origin of this task.
System Update
Always make sure your server is up to date
CPU scaling governor
There are multiple tune ups needed here. Follow the guide below for details:
Disable Swaps
On perf oriented setups, swap is completely disabled. vm.swappiness=0 means swap is still technically active. if you want max perf run without swaps and enough ram: swapoff -a.
Swappiness
This is NOT NEEDED RIGHT NOW.
POH Core Affinity
This optimization should be done AFTER the agave validator is running.
Now that you know for sure what is your nearest available core. Set the POH thread to core that core (2 in our example)
There is a well-known bug in Anza's Agave validator software related to core_affinity if you isolate your cores. You can create a script to identify the pid of solpohtickprod and set it to your chosen core (eg. core 2 in our example)
Add this content
Turn the script file into an executable and run it:
By following these steps, core 2 will run at full speed without any TDP limits and any interrupts. In this example, core 2 runs at 5.9 GHz with overclocking.
If you restart your system, you need to manually run the script again.
This will not work on Intel architectures, only AMD. Do not use Intel.
See this Solana Discord thread related to this optimization.
Last updated
Was this helpful?