Linux Web Server Hack - Hvordan Skriv Automatiseret Load Balancing Script!
Nå, jeg har været manuelt styre den dedikerede server til dette websted for de sidste 2 år eller så, men jeg fandt en bedre metode til at automatisere den server, så den ikke lige gå ned på grund af overbelastning.
Et af de fælles problemer i dedikerede servere, er, at belastningen kan gå ud af kontrol og webserveren sammen med det, få dig til at hård genstarte serveren.
En bedre måde at håndtere denne over-load problem er at lukke HTTPD styreenhed (webserver), før din server belastning bliver til noget omkring 2 til 5.
Når serveren lasten falder til under 2, scriptet så kan genstarte serveren.
Ved at gøre dette, sparer dig for en masse hovedpine, især hvis du får "gravet" eller blot har brug for det websted op så meget som muligt.
Tro det eller ej, er der ingen script, der gør dette gratis online så jeg lavede en for alle jer webmastere:
#!/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
Gem denne kode eller andet sted som / root / checkload.sh.
Derefter føje følgende til din cron-job. (/ Etc / cron.d / sa-opdatering til Fedora Linux)
* / 1 * * * * root sh / root / checkloadsh
Dette vil køre scriptet hver 1 minut til at kontrollere lasten, og hvis belastningen er for høj, vil webserveren være slukket, hvis den er lavere end 2 og webserveren er slukket, vil det dreje webserver på.
Der er en masse ting, der kan gå galt med din webserver, hvorvidt fra ekstra trafik eller hvad, men dette skrift vil være praktisk, og jeg kan anbefale det til alle, der har problemer med høj belastning webservere, der går ned ofte. (som denne blog)
Nu går installere dette script, vil du aldrig behøver at bekymre dig om din webserver dø af høj belastning nogensinde igen.
Du kan også ændre værdien af "2" i koden til noget højere som 5 eller 10, som vil vente længere på at lukke web-serveren ned, hvis belastning går højt.
Jeg har ikke skrive koden fra bunden, tog jeg 2-3 forskellige scripts og blandede det op, så her er de ressourcer, jeg brugte til kode:
Load Gennemsnitlig Script - Det ene er den vigtigste skelet jeg brugte
Check / Genstart HTTPD Script - Denne ene jeg brugt til at kontrollere HTTPD styreenhed før du prøver at genstarte den.
Cron Opgavestyring - Jeg holder glemme, at det mest venstre nummer er referatet, darn.
OBS - Dette er en simpel løsning til at holde din dedikerede server, der kører på 1 server (som denne), hvis du har råd til flere servere, bliver du nødt til at ty til load balancing den "servere", load balancing her refererer til balance inden for 1 serveren.







