Linux Web Server Hack - Hvordan Skriv Automatiseret Load Balancing Script!

ved max på tirsdag 23 september, 2008

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.

Hyppighed

1 Star2 Stars3 Stars4 Stars5 Stars
Loading ... Loading ...



Site Sponsors Buy.com Kuponer
20.000 GPS POI's $ 9,99



Relaterede nyheder og Ressourcer

  • Richard Staw
    Det er ikke load balance! det er bare lukke den webserver højere belastning, ikke en god praksis på alle, så tjek for linux virtuel server, pund og selv iptables kan gøre load balance!
  • max
    Nå, jeg taler om den "billige" løsning på load balance, selvfølgelig hvis du havde penge til flere servere, der ville være en anden historie.

    Desuden kan iptables ikke load balance på en enkel måde,
    dette er en fantastisk løsning for folk, der har råd til 1 dedikerede server. (like this one, men tro mig, jeg havde brug for mindst 2 servere, men kører på en her)

    Det er som du siger du kan få en høj-drevne turbo til din bil, men de fleste mennesker ikke har råd til det, og det er ikke en holdbar løsning, hvis du skal betale $ 2000/month.
  • Ja, men det er ikke load balancing, er dette throttling:

    http://en.wikipedia.org/wiki/Bandwidth_throttling

    Selv på en server, du kan bruge korrekte load balancing teknikker. Lyst til at løbe en lille klynge og lede anmodninger til ikke-travle servere via en proxy af en slags som Nginx.
  • max
    Åh awesome, jeg fik den i siden ind nu, båndbredde rocks! :)
  • inno
    Problemet er, er dette ikke udligne belastningen af enhver form. Det er standset, og så voldsomt.
  • BiSScuiTT
    O.. M.. G. .. Bedste Belastningsjustering script EVAR !!!!!!! Du r Den L33test!

    Alvorligt! Kan jeg få nogle af hvad det er, du ryger!?
blog comments powered by Disqus
Hvis du kan lide dette indlæg så kan du abonnere på min fulde feed RSS.

Du kan også abonnere via e-mail ved at udfylde dit navn og e-mail nedenfor:

Navn: E-mail:


Fik et nyt hack, DIY, howto, eller gadget? Tip os her.

Prøv Goohack at finde en ny Hack:


Featured Sites From Zedomax Blog Network