Frage zu hohen Lasten / load balancing

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
HELLinG3R
Beiträge: 1328
Registriert: 15.04.2004 07:54:33

Frage zu hohen Lasten / load balancing

Beitrag von HELLinG3R » 21.10.2004 11:26:09

Hallo!
Ich habe da gerade so nen Gedankengang:

Also angenommen ich habe einen Webserver. Auf diesem Webserver laufen mehrere Applikationen unter anderem mit Datenbankzugriffen.

Wenn der Server nun an seine Grenzen stößt, wie geht man dann am besten vor?
Man könnte die Datenbank auf einen seperaten Server legen, das würde den webserver entlasten.
- DB wird auf nen externen Server ausgelagert.
okay, die load steigt weiter! Jetzt könnte man einen zweiten Webserver aufbauen.
und hier komme ich nicht mehr so recht weiter.
Da der DB-Server nun ausgelagert ist, können beliebig viele Webserver mit ihren Applikationen auf den DB-Server zugreifen und zentral Daten abholen.
Allerdings ist die Frage: wie kommen die user auf die verschiednene Server? ich meine, den usern sagen "benutzt die und die ip" ist ja schwachsinn.
Eigentlich wäre also die Beste möglichkeit, wenn man vor die Webserver einen Loadbalancer hängt, der die Anfragen dann aufteilt, oder?

Das Problem ist dann nur wieder die Applikation. Die Webserver werden ja dann ejder eine seperate Kopie der Applikation haben, was updates erschwert.
Auch die configfiles der Applikationen müsste man dann Pflegen.

-> Die Lösung hierzu könnte dann sein, dass man einen Applikationsserver aufbaut, der eine Zentrale version der Applikationen hält. Die Webserver wiederum mounten diese Applikationen als NFS-Share rein.

zusammengefasst: Es gibt jetzt n-Webserver, die auf einen DB-Server und einen App-Server zugreifen.

Was aber passiert nun, wenn entweder der DB-Server oder der APP-Server unter Dampf steht?
Wenn man mehrere DB-Server oder APP-Server macht, ist ja wieder das Problem, dass die Daten nicht mehr Zentral liegen...

Benutzeravatar
Ryven
Beiträge: 277
Registriert: 10.10.2003 09:20:52

Beitrag von Ryven » 27.11.2004 18:41:07

Cluster. Schau dir mal Beowulf bzw, OpenMoix an. Du hast ne große virtule Maschine auf der du gestartet Mutterprozese hinschibst, Beim forken wird dann die Last verteil auf die einzellen Kisten.

Benutzeravatar
HELLinG3R
Beiträge: 1328
Registriert: 15.04.2004 07:54:33

Beitrag von HELLinG3R » 28.11.2004 17:01:32

aber dazu muss ja die software clusterfähig sein, oder?
oder reicht es, wenns kindprozesse gibt? (bsp apache)

Benutzeravatar
Ryven
Beiträge: 277
Registriert: 10.10.2003 09:20:52

Beitrag von Ryven » 29.11.2004 07:56:55

normalerweise sollte die Software dafür geschrieben sein. Das wäre der übliche Weg.
Beowolf / Openmoix (Ich weiß jetzt nicht mehr welcher von beiden, da es etwas her ist das ich mich das letzte mal mit beschäftigt hab. Ich setzt für mich auf smp) können hingegen mit Software umgehen die eigentlich nicht für Cluster geschrieben ist, Ihre Schwäche liegt in der Lastverteilung. Sprich wenn ein Thread auf einmal sehr viel Last braucht aber der Thread sich nicht forken läst damit er mehr Leistung bekommt,
Apache würde gut auf ein Cluster passen, die Kunst ist es den einzelen Thread klein genug zu bekommen / halten.
Was bis jetzt nur eingeschränkt geht, ist verteiltes Kompelieren. Das läuft bei nicht immer sauber auf der Smp-Maschine durch.

Benutzeravatar
C_A
Beiträge: 1082
Registriert: 22.04.2004 14:51:01
Lizenz eigener Beiträge: GNU General Public License

Beitrag von C_A » 29.11.2004 13:32:33

Ryven hat geschrieben:Openmoix
zur Richtigstellung: Das heisst openMosix :wink:

Benutzeravatar
C_A
Beiträge: 1082
Registriert: 22.04.2004 14:51:01
Lizenz eigener Beiträge: GNU General Public License

Beitrag von C_A » 04.12.2004 20:43:09

Nachtrag: Der apache ist nicht für openMosix geeignet:
http://howto.x-tend.be/openMosixWiki/index.php/don't

Mit dem DSM Patch soll es aber auch bei shared memory Prozessen funktionieren:
http://mcaserta.com/maask/

init 0
Beiträge: 673
Registriert: 21.10.2003 19:40:28

Beitrag von init 0 » 04.12.2004 22:39:55

Eine der einfacheren Möglichkeiten ergibt sich durch die Verwendung eines eigenen DNS. Dieser kann duch die Verteilung verschiedener IPs für den Rechnernamen eine Lastverteilung hervorrufen. Google mal nach " round robin dns".
Eine richtige Lastverteilung ist das natürlich nicht. Zumindest ist es ein Ansatz der keine spezielle Software ausser dem DNS benötigt.

Antworten