# |source| this file # # Adjusts system settings for optimal validator performance # sysctl_write() { declare name=$1 declare new_value=$2 # Test the existence of the sysctl before trying to set it sysctl "$name" 2>/dev/null 1>/dev/null || return 0 declare current_value current_value=$(sysctl -n "$name") [[ $current_value != "$new_value" ]] || return 0 declare cmd="sysctl -w $name=$new_value" if [[ -n $SUDO_OK ]]; then cmd="sudo $cmd" fi echo "$ $cmd" $cmd || true # Some versions of sysctl exit with 0 on permission denied errors current_value=$(sysctl -n "$name") if [[ $current_value != "$new_value" ]]; then echo "==> Failed to set $name. Try running: \"SUDO_OK=1 source ${BASH_SOURCE[0]}\"" fi } case $(uname) in Linux) # Reference: https://medium.com/@CameronSparr/increase-os-udp-buffers-to-improve-performance-51d167bb1360 sysctl_write net.core.rmem_max 134217728 sysctl_write net.core.rmem_default 134217728 sysctl_write net.core.wmem_max 134217728 sysctl_write net.core.wmem_default 134217728 ;; *) ;; esac