Linux Web Server Hack - Comment rédiger un équilibrage de charge automatique Script!
Eh bien, j'ai été gérer manuellement le serveur dédié pour ce site pendant les 2 dernières années, mais j'ai trouvé une meilleure façon d'automatiser le serveur afin qu'il n'effectue jamais arrêté à cause d'une surcharge.
Un des problèmes communs dans les serveurs dédiés est le fait que la charge peut aller du contrôle et de votre serveur web avec elle, en vous faisant difficiles redémarrer le serveur.
Une meilleure façon de traiter ce problème de sur-charge est de fermer le serveur httpd (serveur web) avant la charge du serveur arrive à quelque chose de l'ordre de 2 à 5.
Lorsque la charge du serveur sera en baisse de moins de 2, le script peut alors redémarrer le serveur.
En faisant cela, vous gagnez beaucoup de maux de tête, surtout si vous obtenez "creusé" ou tout simplement besoin du logiciel en place, autant que possible.
Croyez-le ou pas, il n'y a pas de script qui fait cela accessible gratuitement en ligne alors j'ai fait un pour vous tous les webmasters:
#!/bin/bash
loadavg=`uptime | awk '{print $9}'`
RESTART="/sbin/service httpd restart"
# bash doesn't understand floating point
# so convert the number to an interger
thisloadavg=`echo $loadavg|awk -F \. '{print $1}'`
if [ "$thisloadavg" -ge "5" ]; then
echo "Busy - Load Average $loadavg ($thisloadavg) "
httpd -k stop
elif [ "$thisloadavg" -le "2" ]; then
echo "Okay - Load Average $loadavg ($thisloadavg) "
pgrep httpd
if [ $? -ne 0 ] # if apache not running
then
# restart apache
$RESTART
echo "restart!"
else
echo "no restart!"
fi
else
echo "waiting...!"
fi
Sauver ce code à un endroit tel que / root / checkload.sh.
Puis ajoutez la ligne suivante à votre tâche cron. (/ Etc / cron.d / sa-mise à jour pour Fedora Linux)
* / 1 * * * * sh root / root / checkloadsh
Ceci lancera le script toutes les 1 minute pour vérifier la charge et si la charge est trop élevée, le serveur Web sera désactivé, si elle est inférieure à 2 et le serveur Web est désactivé, il sera de mettre le serveur d'enchaînement.
Il ya beaucoup de choses qui peuvent mal se passer avec votre serveur web, qu'il s'agisse de trafic supplémentaire ou quoi, mais ce script va être très pratique et je ne le recommande à toute personne qui a de la difficulté avec des serveurs à forte charge web qui descendent souvent. (comme ce blog)
Maintenant, allez installer ce script, vous n'aurez jamais à vous inquiéter de votre serveur web mourir de charge élevée jamais.
Vous pouvez également modifier la valeur de "2" dans le code pour quelque chose de supérieur comme les 5 ou 10 ", qui attendent plus longtemps pour arrêter le serveur web off si la charge passe au niveau haut.
Je n'ai pas écrit le code à partir de zéro, j'ai pris 2-3 scripts différents et mixte, il place donc voici les ressources que j'ai utilisé pour le code:
Charge moyenne Script - Celui-ci est le squelette principal j'ai utilisé
Check / redémarrer httpd Script - Ce que j'ai utilisée pour vérifier serveur HTTPD avant d'essayer de le redémarrer.
Cron Planificateur de tâches - je l'oublie toujours que le nombre le plus à gauche est le compte rendu, darn.
NOTE - Ceci est une solution simple pour garder votre serveur dédié fonctionnant sur 1 serveur (comme ici), si vous pouvez vous permettre plus de serveurs, vous aurez besoin de recourir à l'équilibrage de charge "serveurs", l'équilibrage de charge se réfère ici à l'équilibre d'ici 1 serveur.











