2019-05-03 10:40:02 -07:00
|
|
|
# |source| this file
|
|
|
|
#
|
|
|
|
# Adjusts system settings for optimal fullnode performance
|
|
|
|
#
|
|
|
|
|
2019-06-05 09:10:23 -07:00
|
|
|
sysctl_write() {
|
|
|
|
declare name=$1
|
|
|
|
declare new_value=$2
|
|
|
|
|
|
|
|
# Test the existence of the sysctl before trying to set it
|
2019-06-05 14:11:03 -07:00
|
|
|
sysctl "$name" 2>/dev/null 1>/dev/null || return 0
|
2019-06-05 09:10:23 -07:00
|
|
|
|
|
|
|
declare current_value
|
|
|
|
current_value=$(sysctl -n "$name")
|
2019-06-05 14:11:03 -07:00
|
|
|
[[ $current_value != "$new_value" ]] || return 0
|
2019-06-05 09:10:23 -07:00
|
|
|
|
|
|
|
declare cmd="sysctl -w $name=$new_value"
|
|
|
|
if [[ -n $SUDO_OK ]]; then
|
|
|
|
cmd="sudo $cmd"
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$ $cmd"
|
2019-07-29 21:25:28 -07:00
|
|
|
$cmd || true
|
2019-06-05 09:10:23 -07:00
|
|
|
|
|
|
|
# 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 161061273
|
|
|
|
sysctl_write net.core.rmem_default 161061273
|
|
|
|
sysctl_write net.core.wmem_max 161061273
|
|
|
|
sysctl_write net.core.wmem_default 161061273
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
;;
|
|
|
|
esac
|
2019-05-03 10:40:02 -07:00
|
|
|
|