Skip to content

Instantly share code, notes, and snippets.

@richardsonlima
Created January 26, 2016 16:00
Show Gist options
  • Save richardsonlima/9e852da1122fc1b2923c to your computer and use it in GitHub Desktop.
Save richardsonlima/9e852da1122fc1b2923c to your computer and use it in GitHub Desktop.
#!/bin/bash
echo -e "\033[33;1;34m [*] \033[0m \033[33;1;32m Calculando MaxClients dividindo maior Apache Thread pela memoria livre \033[0m";
if [ -e /etc/debian_version ]; then
APACHE="apache2"
elif [ -e /etc/redhat-release ]; then
APACHE="httpd"
fi
APACHEMEM=$(ps -aylC $APACHE |grep "$APACHE" |awk '{print $8'} |sort -n |tail -n 1)
APACHEMEM=$(expr $APACHEMEM / 1024)
SQLMEM=$(ps -aylC mysqld |grep "mysqld" |awk '{print $8'} |sort -n |tail -n 1)
SQLMEM=$(expr $SQLMEM / 1024)
echo -e "\033[33;1;34m [*] \033[0m \033[33;1;32m Parando $APACHE para calcular a quantidade de memoria livre \033[0m";
/etc/init.d/$APACHE stop &> /dev/null
TOTALFREEMEM=$(free -m |head -n 3 |tail -n 1 |awk '{free=($4); print free}')
TOTALMEM=$(free -m |head -n 2 |tail -n 1 |awk '{total=($2); print total}')
SWAP=$(free -m |head -n 4 |tail -n 1 |awk '{swap=($3); print swap}')
MAXCLIENTS=$(expr $TOTALFREEMEM / $APACHEMEM)
MINSPARESERVERS=$(expr $MAXCLIENTS / 4)
MAXSPARESERVERS=$(expr $MAXCLIENTS / 2)
echo -e "\033[33;1;34m [*] \033[0m \033[33;1;32m Iniciando $APACHE novamente... \033[0m";
/etc/init.d/$APACHE start &> /dev/null
echo -e "\033[33;1;34m [*] \033[0m \033[33;1;32m Total memoria: \033[0m" $TOTALMEM;
echo -e "\033[33;1;34m [*] \033[0m \033[33;1;32m Memoria livre: \033[0m" $TOTALFREEMEM;
echo -e "\033[33;1;34m [*] \033[0m \033[33;1;32m Quantidade de memoria virtual (swap) que esta sendo usada: \033[0m" $SWAP;
echo -e "\033[33;1;34m [*] \033[0m \033[33;1;32m Tamanho da maior Apache Thread: \033[0m" $APACHEMEM;
echo -e "\033[33;1;34m [*] \033[0m \033[33;1;32m Quantidade de memoria ocupanda pelo MySQL: \033[0m" $SQLMEM;
if [[ SWAP > TOTALMEM ]]; then
ERR=" [+] A memoria virtual esta com valor muito alto!";
else
ERR=" [+] A memoria virtual esta OK!";
fi
echo "$ERR"
echo -e "\033[33;1;34m [*] \033[0m \033[33;1;32m Total memoria livre: \033[0m" $TOTALFREEMEM;
echo -e "\033[33;1;34m [*] \033[0m \033[33;1;32m O valor para MaxClients deve ficar em torno de: \033[0m" $MAXCLIENTS;
echo -e "\033[33;1;34m [*] \033[0m \033[33;1;32m O valor para MinSpareServers deve ficar em torno de: \033[0m" $MINSPARESERVERS;
echo -e "\033[33;1;34m [*] \033[0m \033[33;1;32m O valor para MaxSpareServers deve ficar em torno de: \033[0m" $MAXSPARESERVERS;
@aeciojr
Copy link

aeciojr commented Jan 26, 2016

Hi Dude!! So good script!!!

@richardsonlima
Copy link
Author

Thanks Man !!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment