Created
September 4, 2015 20:08
-
-
Save siennathesane/c838a7aa1889ea1bd753 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #! /bin/bash | |
| # Mike Lloyd, used for increasing ring buffers on CentOS/RHEL. To utilise, just have a local servers.txt file. | |
| clear | |
| echo -e "declaring arrays for in-memory storage." | |
| declare -A {rmem_default,rmem_max,wmem_default,wmem_max,optmem_max} | |
| #rmem defaults. | |
| for i in $(cat servers.txt); do | |
| rmem_default[$(echo "$i")]=$(ssh root@$i "cat /proc/sys/net/core/rmem_default") | |
| done | |
| echo -e "\nserver ring memory defaults." | |
| tput sgr0 | |
| for i in "${!rmem_default[@]}"; do | |
| echo "server: $i" | |
| echo "ring default: ${rmem_default[$i]}" | |
| done | |
| #rmem maxs | |
| for i in $(cat servers.txt); do | |
| rmem_max[$(echo "$i")]=$(ssh root@$i "cat /proc/sys/net/core/rmem_max") | |
| done | |
| echo -e "\nserver ring memory maximums." | |
| for i in "${!rmem_max[@]}"; do | |
| echo "server: $i" | |
| echo "ring max: ${rmem_max[$i]}" | |
| done | |
| #wmem defaults. | |
| for i in $(cat servers.txt); do | |
| wmem_default[$(echo "$i")]=$(ssh root@$i "cat /proc/sys/net/core/wmem_default") | |
| done | |
| echo -e "\nserver default send buffer size." | |
| for i in "${!wmem_default[@]}"; do | |
| echo "server: $i" | |
| echo "send default: ${wmem_default[$i]}" | |
| done | |
| #mem maxes | |
| for i in $(cat servers.txt); do | |
| wmem_max[$(echo "$i")]=$(ssh root@$i "cat /proc/sys/net/core/wmem_max") | |
| done | |
| echo -e "\nserver max send buffer size." | |
| for i in "${!wmem_max[@]}"; do | |
| echo "server: $i" | |
| echo "send max: ${wmem_max[$i]}" | |
| done | |
| #socket details | |
| for i in $(cat servers.txt); do | |
| optmem_max[$(echo "$i")]=$(ssh root@$i "cat /proc/sys/net/core/optmem_max") | |
| done | |
| echo -e "\nserver option memory buffer size." | |
| for i in "${!optmem_max[@]}"; do | |
| echo "server: $i" | |
| echo "send max: ${optmem_max[$i]}" | |
| done | |
| echo -e "\n\n\nYou have 30 seconds to review the material to verify changes. Press CTRL+C to cancel.\n\n\n" | |
| sleep 30 | |
| for i in "${!rmem_max[@]}"; do | |
| echo -e "\nchanging server $i to maximum ring buffer size." | |
| ssh root@$i "sysctl -w net.core.rmem_max=${rmem_max[$i]}" | |
| done | |
| for i in "${!wmem_max[@]}"; do | |
| echo -e "\nchanging server $i to maximum send buffer size." | |
| ssh root@$i "sysctl -w net.core.wmem_max=${wmem_max[$i]}" | |
| done | |
| for i in $(cat servers.txt); do | |
| echo -e "\nflushing route for server $i." | |
| ssh root@$i "sysctl -w net.ipv4.route.flush=1" | |
| # | |
| echo -e "restarting sysctl without reboot on server $i." | |
| ssh root@$i "sysctl -p" | |
| done | |
| echo -e "\nremoving arrays." | |
| unset {rmem_default,rmem_max,wmem_default,wmem_max,optmem_max} | |
| echo -e "verifying new settings." | |
| for i in $(cat servers.txt); do | |
| echo -e "\nserver $i networking:" | |
| ssh root@$i "grep net /etc/sysctl.conf" | |
| done | |
| exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment