Brauche Cluster für Performance
-
- Posts: 55
- Joined: 2007-01-10 04:00
Brauche Cluster für Performance
Morgen,
ich brauche für meine Seite demnächst ein MySQL und Webserver Cluster für mehr Performance!
Gibt es da spezielle Addons die ich einfach dazu installieren kann?
Wenn ja, was muss ich dabei dann beachen und wie installiere ich dann neue Server dazu.
Es geht darum das meine Datenbank sehr groß ist und die anderen Server sollten dann jeder auf am besten eine Datenbank zugreifen können. Also jeder Server extra immer die selben Daten haben.
Bei dem Webserver soll es so sein, das er sich aussucht welcher Server nicht so ausgelastet ist und dann automatisch nicht den ausgelasteten nimmt. Auch hier sollten die Daten auf den Server identisch sein.
Ich weiss leider nicht wie ich das anstellen soll.
Danke!
ich brauche für meine Seite demnächst ein MySQL und Webserver Cluster für mehr Performance!
Gibt es da spezielle Addons die ich einfach dazu installieren kann?
Wenn ja, was muss ich dabei dann beachen und wie installiere ich dann neue Server dazu.
Es geht darum das meine Datenbank sehr groß ist und die anderen Server sollten dann jeder auf am besten eine Datenbank zugreifen können. Also jeder Server extra immer die selben Daten haben.
Bei dem Webserver soll es so sein, das er sich aussucht welcher Server nicht so ausgelastet ist und dann automatisch nicht den ausgelasteten nimmt. Auch hier sollten die Daten auf den Server identisch sein.
Ich weiss leider nicht wie ich das anstellen soll.
Danke!
Re: Brauche Cluster für Performance
Stichwort: Master-Slave-Replikation, da findet sich hier im Forum und in der MySQL-Dokumentation schon einiges zu. Zusätzliche Software wird nicht benötigt, das kann MySQL schon von Haus aus.Accelerator wrote:Es geht darum das meine Datenbank sehr groß ist und die anderen Server sollten dann jeder auf am besten eine Datenbank zugreifen können. Also jeder Server extra immer die selben Daten haben.
Die Webserver kannst Du entweder mit einem gemeinsamen NAS synchron halten oder bei geringen Änderungshäufigkeiten der statischen Inhalte und Skripte per rsync von Zeit zu Zeit synchronisieren. Loadbalancing zwischen mehreren Webservern erreichst Du entweder mit einer Loadbalancing-Appliance oder mit einem loadbalancing-tauglichen Reverse-Proxy auf einer vorgeschalteten Maschine (z. B. Pound oder HAProxy)Accelerator wrote:Bei dem Webserver soll es so sein, das er sich aussucht welcher Server nicht so ausgelastet ist und dann automatisch nicht den ausgelasteten nimmt. Auch hier sollten die Daten auf den Server identisch sein.
-
- Posts: 88
- Joined: 2006-06-10 14:17
Re: Brauche Cluster für Performance
Von dem Kenntnissstand den die Art deiner Fragestellung annehmen läßt, würde ich ertmal empfehlen, den tatsächlichen Flaschenhals zu diagnostizieren der für die Performance-Engpässe verantwortlich ist. Es kann gut sein, dass es sich um ein Konfigurationsproblem handelt, oder eine zu alte Festplatte oder zu wenig RAM, oder ähnliches.Accelerator wrote:Morgen,
ich brauche für meine Seite demnächst ein MySQL und Webserver Cluster für mehr Performance!
Selbst billige Server haben heutzutage in der Regel ausreichend Leistung um auch "plötzliche" Erfolge von Hobby-webmastern zu meistern, wenn man sich die Konfiguration ein wenig anschaut. Und selbst wenn ein Server nicht mehr reicht, kann man die Dienste häufig auf 2-3 erver verteilen ohne irgendwas clustern zu müssen.
Also besser einen Schritt nach dem anderen. Denn das folgende:
ist häufig mehr Arbeit und erfordert mehr Knowhow, und am Ende mußt die obigen Grundlegenden Sachen ohnehin machen.Gibt es da spezielle Addons die ich einfach dazu installieren kann?
Wenn ja, was muss ich dabei dann beachen und wie installiere ich dann neue Server dazu.
Dann brauchst du nur eine größere Platte und/oder mehr RAM, wenn die _Größe_ der Datenbank das Problem ist...Es geht darum das meine Datenbank sehr groß ist
-
- Posts: 207
- Joined: 2005-06-02 11:58
- Contact:
Re: Brauche Cluster für Performance
Würde ich auch meinen. Hoste auf einer Kiste weit über 10k Datenbanken mit mittlerweile gut 25GB Volumen und über 26k Tabellen -> keine Performance-Probleme. Gut, ich setze auf keinen 20€-Root und auf keinen 10k € Dell Cluster, dennoch: sowas lässt sich mit einer Maschine schaffen ;).R. U. Serious wrote:Dann brauchst du nur eine größere Platte und/oder mehr RAM, wenn die _Größe_ der Datenbank das Problem ist...Es geht darum das meine Datenbank sehr groß ist
-
- Posts: 55
- Joined: 2007-01-10 04:00
Re: Brauche Cluster für Performance
Ich setzte auch nicht auf 50 € Server sondern auf 150 € Server, einen Xeon mit 4 Prozessoren finde ich etwas zu teuer, daher möchte ich gerne die Datenbank auf 2 Server teilen und für den Webserver einen starken Server nehmen.
Der Umstieg von SuSE auf Debian hat sich wirklich gelohnt, ich hab ca. 30% mehr Performance. Aber bei über 400k Tabellen braucht man schonmal einen kleinen Cluster, an den man bei bedarf auch einen weiteren anschliessen kann.
Der Umstieg von SuSE auf Debian hat sich wirklich gelohnt, ich hab ca. 30% mehr Performance. Aber bei über 400k Tabellen braucht man schonmal einen kleinen Cluster, an den man bei bedarf auch einen weiteren anschliessen kann.
Re: Brauche Cluster für Performance
Sei mir nicht böse, aber Deine Frage im anderen Post "Wie kopiere ich auf eine zweite Platte?" lässt da erhebliche Zweifel aufkommen, wo das Problem liegt.
Wenn Dir Master/Slave mit seinen Nachteilen ausreicht, dann probiere das aus, einen richtigen MySQL-Cluster baust Du nach Lesen von http://dev.mysql.com/doc/refman/5.1/de/ndbcluster.html .
Ach ja, bezüglich der Leistung - ich hatte 2003/2004 mal knapp 180 Angebote auf einem PIII/1200 laufen, allerdings mit eigenem MySQL-Server, der auch noch Mailserver war - lief bombig.
Wenn Dir Master/Slave mit seinen Nachteilen ausreicht, dann probiere das aus, einen richtigen MySQL-Cluster baust Du nach Lesen von http://dev.mysql.com/doc/refman/5.1/de/ndbcluster.html .
Ach ja, bezüglich der Leistung - ich hatte 2003/2004 mal knapp 180 Angebote auf einem PIII/1200 laufen, allerdings mit eigenem MySQL-Server, der auch noch Mailserver war - lief bombig.
-
- Posts: 55
- Joined: 2007-01-10 04:00
Re: Brauche Cluster für Performance
Ok, und kann man auch 2 Webserver laufen lassen? Gibts da für Apache ein Cluster Tool oder Master/Slave?
Werde dann nur auf einen größeren MySQL Server umsteigen.
Werde dann nur auf einen größeren MySQL Server umsteigen.
Re: Brauche Cluster für Performance
Technisch gesehen ja. Aber auch hier gilt, dass ein Server die Ressourcen wesentlich besser nutzt als ein kleiner Cluster. Erst ein Cluster mit n Knoten nähert sich mit wachsendem n wieder der Ressourcennutzung eines Einzel-Systems an.
Grund: Wenn Du einen Webdienst verteilt laufen lassen willst, benötigst Du einen vorgeschalteten Loadbalancer, der die Lastverteilung auf die Knoten überhaupt erst übernimmt (entweder eine Appliance oder einen Eigenbau mit entsprechenden Produkten wie HAProxy oder Pound) - also mindestens 3 Maschinen, von denen aber nur 2 tatsächlich zur Bearbeitung von Requests zur Verfügung stehen.
Unterm Strich solltest Du also erst mal versuchen, ob Du nicht mit einem optimierten Setup (z. B. Lighttpd statt Apache, Module entrümpeln, Opcode-Cache, Content-Caching, RAM-Disk für häufig abgerufene statische Inhalte etc.) vielleicht auch so zum Ziel kommst.
Grund: Wenn Du einen Webdienst verteilt laufen lassen willst, benötigst Du einen vorgeschalteten Loadbalancer, der die Lastverteilung auf die Knoten überhaupt erst übernimmt (entweder eine Appliance oder einen Eigenbau mit entsprechenden Produkten wie HAProxy oder Pound) - also mindestens 3 Maschinen, von denen aber nur 2 tatsächlich zur Bearbeitung von Requests zur Verfügung stehen.
Unterm Strich solltest Du also erst mal versuchen, ob Du nicht mit einem optimierten Setup (z. B. Lighttpd statt Apache, Module entrümpeln, Opcode-Cache, Content-Caching, RAM-Disk für häufig abgerufene statische Inhalte etc.) vielleicht auch so zum Ziel kommst.
-
- Posts: 774
- Joined: 2004-04-26 15:57
Re: Brauche Cluster für Performance
Sind die Server in einem Rack? Also ein eigenes Lan mit 100mbit im Backend? Dann reicht ein Apache der auf mysql.meinlan.intra geht und ein Loadbalancer verteilt es auf 2 Mysql Server. Aber so ein Spaß mit Rootserver zu betreiben ist schwachsinn, weil man vielleicht erstmal durch das Lan des Hosters muss oder übers Internet (je nach Routing des Hosters) und dann ist der Vorteil ja schon wieder zunichte.Accelerator wrote:Ok, und kann man auch 2 Webserver laufen lassen? Gibts da für Apache ein Cluster Tool oder Master/Slave?
Werde dann nur auf einen größeren MySQL Server umsteigen.
Wieviel Ram haben die Kisten überhaupt? 4 Prozis drin und 2 GB Ram ist etwas leichtbrüstig. Die Paar Tabellen kann man auch auf einer kleinrere Kiste hosten wenn es nötig ist, aber ein Engpass wäre vielleicht schonmal dein Webserver der einfach zu langsam läuft.
-
- Posts: 55
- Joined: 2007-01-10 04:00
Re: Brauche Cluster für Performance
Die Kiste hat 2 Prozis und 4 GB Räm.
Ich werde den dann weiter für MySQL nehmen und dazu nur einen neuen Webserver.
Was genau würdet ihr für einen Webserver empfehlen der große PHP Scripte bilden muss? Viel RAM? Viel CPU usw.?
Ich werde den dann weiter für MySQL nehmen und dazu nur einen neuen Webserver.
Was genau würdet ihr für einen Webserver empfehlen der große PHP Scripte bilden muss? Viel RAM? Viel CPU usw.?
Re: Brauche Cluster für Performance
Definiere "große PHP Scripte" - Sind das Skripte mit hohem Speicherverbrauch, langer Laufzeit oder beidem?
Viel RAM ist in beiden Fällen von Vorteil: Bei langer Prozesslaufzeit benötigst Du eine entsprechend hohe Anzahl von parallel laufenden Prozessen, um mehrere Requests gleichzeitig bedienen zu können. Was bei großem Speicherbedarf zu tun ist, dürfte selbstredend sein...
Über die CPU kann man ohne geeignete Quantifizierung Deinerseits kaum irgendeine Aussage treffen. Grundsätzlich gilt: Je mehr parallele Prozesse, desto mehr CPU-Kerne. Gretchenfrage ist hier das Verhältnis von Prozesszahl zu CPU-Kernen, das je nach Szenario recht unterschiedlich ausfallen kann. Sprich: wie CPU-intensiv ein einzelner Prozess ist, musst Du selbst (durch experimentieren oder Abschätzung der Komplexität der zugrunde liegenden Algorithmen) herausfinden. Wie viele Prozesse Du benötigst, ist wiederum abhängig von der Anzahl erwarteter Requests und der erforderlichen Laufzeit zur Bearbeitung eines einzelnen Requests.
Auch wenn bei Hardware gilt "viel hilft viel", solltest Du allein aus Gründen der Wirtschaftlichkeit genau prüfen, ob Du anstelle ner Sun Fire 25k (Achtung, Übertreibung) vielleicht auch was kleineres einsetzen könntest, wenn Du das Gespann Webserver/PHP entsprechend optimierst und beim Webserver ein schlankeres Produkt als Apache einsetzt.
Viel RAM ist in beiden Fällen von Vorteil: Bei langer Prozesslaufzeit benötigst Du eine entsprechend hohe Anzahl von parallel laufenden Prozessen, um mehrere Requests gleichzeitig bedienen zu können. Was bei großem Speicherbedarf zu tun ist, dürfte selbstredend sein...
Über die CPU kann man ohne geeignete Quantifizierung Deinerseits kaum irgendeine Aussage treffen. Grundsätzlich gilt: Je mehr parallele Prozesse, desto mehr CPU-Kerne. Gretchenfrage ist hier das Verhältnis von Prozesszahl zu CPU-Kernen, das je nach Szenario recht unterschiedlich ausfallen kann. Sprich: wie CPU-intensiv ein einzelner Prozess ist, musst Du selbst (durch experimentieren oder Abschätzung der Komplexität der zugrunde liegenden Algorithmen) herausfinden. Wie viele Prozesse Du benötigst, ist wiederum abhängig von der Anzahl erwarteter Requests und der erforderlichen Laufzeit zur Bearbeitung eines einzelnen Requests.
Auch wenn bei Hardware gilt "viel hilft viel", solltest Du allein aus Gründen der Wirtschaftlichkeit genau prüfen, ob Du anstelle ner Sun Fire 25k (Achtung, Übertreibung) vielleicht auch was kleineres einsetzen könntest, wenn Du das Gespann Webserver/PHP entsprechend optimierst und beim Webserver ein schlankeres Produkt als Apache einsetzt.
-
- Posts: 55
- Joined: 2007-01-10 04:00
Re: Brauche Cluster für Performance
PHP-Script hat hohen Speicherverbrauch, die Laufzeit sind nur 1 - 0,5 Sekunden.
Ich benutze Confixx, daher jetzt die Frage, kann ich Apache einfach löschen und ein neues drauf installieren?
Der Server hat jetzt einen CPU von Intel Pentium D EM64T / Dual Core.
Sollte ich dann den gleichen auch nur für den Webserver nehmen oder einen stärkeren?
Ach ja ganz wichtig: Ich brauche unbedingt bei dem Webserver mod_rewrite, das geht mit Apache und Confixx sehr leicht.
Ich benutze Confixx, daher jetzt die Frage, kann ich Apache einfach löschen und ein neues drauf installieren?
Der Server hat jetzt einen CPU von Intel Pentium D EM64T / Dual Core.
Sollte ich dann den gleichen auch nur für den Webserver nehmen oder einen stärkeren?
Ach ja ganz wichtig: Ich brauche unbedingt bei dem Webserver mod_rewrite, das geht mit Apache und Confixx sehr leicht.