Linux Web Server Hack - How to Write Automated Load Balancing Script!

von max am Dienstag, 23. September 2008

Nun, ich habe manuell die Verwaltung der dedizierten Server für diese Website für die letzten 2 Jahre oder so, aber ich fand einen besseren Weg an den Server zu automatisieren, damit es nicht immer funktioniert nach unten durch Überlastung.

Einer der häufigsten Probleme bei dedizierten Servern ist die Tatsache, dass Belastung ausgehen kann der Kontroll-und Webserver mit sich, was Sie an Hard-den Server neu starten.

Eine bessere Möglichkeit, sich mit diesem über-laden Problem ist zum Herunterfahren des HTTPD-Server (Webserver), bevor ein Server-Last wird, etwas zu rund 2 bis 5.

Wenn die Server-Last fällt unter 2, das Skript kann dann den Server neu starten.

Auf diese Weise sparen Sie eine Menge Kopfschmerzen, besonders, wenn Sie "get gegraben" oder einfach nur die Seite so viel wie möglich.

Ob Sie es glauben oder nicht, es gibt kein Skript, das bedeutet dies kostenlos online verfügbar gemacht, damit ich Sie ein für alle Webmaster:


#! / bin / bash
loadavg = `uptime | awk '(print $ 9)'`
RESTART = "/ sbin / service httpd restart"
# Bash nicht versteht floating point
# So wandeln die Nummer eins interger
thisloadavg = `echo $ loadavg | awk-F \. '(print $ 1)' `
if [ "$ thisloadavg"-ge "5"], dann
echo "Busy - Load Average loadavg $ ($ thisloadavg)"
httpd-k stop
elif [ "$ thisloadavg"-le "2"], dann
echo "Okay - Last Durchschnittliche loadavg $ ($ thisloadavg)"
pgrep httpd
if [$? -ne 0] # Wenn Apache läuft nicht
dann
# Apache neustarten
$ RESTART
echo starten "!"
sonst
echo "nicht starten!"
fi
sonst
echo "warten ...!"
fi

Speichern Sie diesen Code irgendwo z. B. / root / checkload.sh.

Dann fügen Sie Folgendes in Ihre Cron-Job. (/ Etc / cron.d / sa-updatefür Fedora Linux)

* / 1 * * * * root sh / root / checkloadsh

Dadurch wird das Skript alle 1 Minuten, um die Last zu überprüfen und, wenn Belastung zu hoch ist, werden Web-Server abgeschaltet werden, wenn es weniger als 2 und Web-Server deaktiviert ist, wird es den Web-Server zu aktivieren.

Es gibt eine Menge Dinge, die schief gehen kann mit Ihrem Web-Server aus, ob zusätzliche Verkehr oder was auch, aber das Skript wird nützlich sein, und ich tue es für jeden, der Probleme mit hoher Auslastung Web-Server mit, dass unten gehen oft zu empfehlen. (wie diesem Blog)

Gehen Sie nun dieses Skript zu installieren, müssen Sie sich nie über Ihren Web-Server kümmern sterben hoher Belastung immer wieder.

Sie können auch den Wert "2" im Code etwas höher wie 5 oder 10, die länger warten, um die Web-Server abgeschaltet, wenn Last geht hoch bleibt.

Ich habe nicht den Code schreiben, von Grund auf neu, habe ich 2-3 verschiedene Skripte und mischte es bis hier ist also die Mittel habe ich für den Code ein:

Durchschnittliche Load Script - Dies ist das Haupt-Skelett ich

Check / httpd restart Script - This one I verwendet, um HTTPD-Server, bevor Sie versuchen es neu zu starten überprüfen.

Cron Task Scheduler - Ich vergesse immer wieder, dass die linke Zahl der Minuten, verdammt ist.

Hinweis - Dies ist eine einfache Lösung für Ihre speziellen Server auf 1 Server (wie diesem) zu halten, wenn Sie mehrere Server leisten können, müssen Sie auf, auf Load-Balancing der "Server", Lastenausgleich bezieht sich hier auf den Ausgleich innerhalb von 1 Server.

Rate

1 Stern 2 Sterne 3 Sterne 4 Sterne 5 Sterne
Loading ... Loading ...

tokyoflash


20.000 GPS POI's $ 9,99

In Verbindung stehende News and Resources

  • richard Staw
    Das ist kein Lastausgleich! es ist nur shutdown den Webserver, auf höhere Belastungen, keine gute Praxis auf allen prüfen, auf Linux Virtual Server, Pfund und sogar iptables kann Lastenausgleich zu tun!
  • Nun, ich spreche von der "billige" Lösung für Lastenausgleich, natürlich, wenn man Geld hatte für mehrere Server, ist eine andere Geschichte sein würde.

    Außerdem kann iptables nicht Lastenausgleich in einfacher Weise,
    Dies ist eine großartige Lösung für Menschen, die 1 dedizierten Server leisten können. (wie diesem aber glauben Sie mir, daß ich mindestens 2-Server benötigen, aber das auf einem hier)

    Es ist wie Sie sagen, Sie können einen High-Power Turbo für Ihr Fahrzeug zu erhalten, aber die meisten Menschen können es sich nicht leisten, und es ist keine gangbare Lösung, wenn Sie bis zu $ 2000/month zahlen müssen.
  • Ja, aber das ist kein Load-Balancing, ist diese Drosselung:

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

    Selbst auf einem Server können Sie richtige Load-Balancing-Techniken zu verwenden.Wie läuft eine kleine Gruppe und die Weiterleitung von Anfragen an nicht ausgelasteten Servern über einen Proxy von einer Art, wie Nginx.
  • Awesome Oh, ich habe es in der Wiki-Eintrag nun die Bandbreite rocks! :)
  • inno
    Das Problem ist, das ist kein Load-Balancing jeder Form. Es ist Drosselung und so heftig.
  • BiSScuiTT
    O.. M.. G. .. Best Load Balancer Skript EVAR !!!!!!! Sie r Die L33test!

    Im Ernst! Kann ich einige von was auch immer es ist, dass Sie rauchen!?
Blog-Kommentare powered by Disqus
Wenn Sie möchten diesen Post dann abonnieren Sie meine volle RSS-Feed.

Sie können auch per E-Mail abonnieren, indem Sie Ihre Namen und Ihre E-Mail Adresse ein:

Name: E-Mail:


Sie haben einen neuen Hack, DIY, howto, oder Gadget? Tipp uns hier.

Versuchen Sie Goohack zu finden, eine neue Hack:


Featured Sites From Zedomax Blog-Netzwerk