Apache Prefork oder Worker?

MaDoo

New Member
Hallo,
welches modul bevorzugt ihr?
Das klassische Prefork oder das neue Worker?

Welches ist am Leistungsfähgsten und vebraucht am wenigstens Ressourcen?

Wie würdet ihr es einstellen?


Habe hier Server kleine 2 Ghz Server mit 1 GB Ram!
Was würdet ihr mir raten, damit die Server locker über 1000 Verbindungen Gleichzeitig standhalten. Bzw kann die Hardware sowas ab (Leistungsstark genug?)?

Bin gespannt auf eure Antworten!
 
Ein paar Fragen lassen sich direkt beantworten:
Welches ist am Leistungsfähgsten und vebraucht am wenigstens Ressourcen?
Der Worker.

Was würdet ihr mir raten, damit die Server locker über 1000 Verbindungen Gleichzeitig standhalten.
Wirklich 1000 Verbindungen leichzeitig? Oder meinst Du nur ca. 1000 User gleichzeitig? (Großer Unterschied!)

Bzw kann die Hardware sowas ab (Leistungsstark genug?)?
Nein.

Einige Fragen nicht:
Wie würdet ihr es einstellen?

Andere wichtige Fakten erwähnst Du leider nicht:
Warum sollen 1000 Verbindungen/User gleichzeitig verarbeitet werden?
Was für Software wird eingesetzt?

huschi.
 
Habe mich wohl tatsächlich etwas schlecht ausgedrückt. Meinte Natürlich über 1000 User gleichzeitig on.
Betreibe eine Filehostingseite mit Stream. Habe jetzt schon meine 600 User die gleichzeitig Online sind.
Es gibt einen Masterserver mit 2GB auf dem die Homepage läuft + MySQL + Mailserver.
Dieser verteilt die User sowie Files auf die weiteren Server auf denen die Files gehostet werden! Sind zZ 4 Stück alles die gleichen wie im ersten Post beschrieben.
Wieviel User gleichzeitig würde die Hardware denn aushalten?

Was meinst du mit Software?
Es wird hauptsächlich PHP eingesetzt mit cgi scripten.
 
Wieviel User gleichzeitig würde die Hardware denn aushalten?
Deine zentrale Frage ist schon klar. Aber das drumherum ist noch nicht geklärt.

Dieser verteilt die User sowie Files auf die weiteren Server
Wie? Proxy, Redirect, LB?

Was meinst du mit Software?
CMS oder andere Scripte. Die meisten vorgefertigten Scripte sind nicht wirklich performant programmiert.

Es wird hauptsächlich PHP eingesetzt mit cgi scripten.
Meinst Du PHP als CGI, oder "neben PHP noch andere CGI-Scripte"?
Hier ist die wesentlich Frage, ob aus Performance-Gründen mod_php eingesetzt werden soll. (Dann würde der Worker bereits ausscheiden.)

huschi.
 
Hier ist die wesentlich Frage, ob aus Performance-Gründen mod_php eingesetzt werden soll. (Dann würde der Worker bereits ausscheiden.)
Nein, nicht unbedingt. mod_php kann nur nicht mit MPM Worker genutzt werden, wenn eine Erweiterung genutzt wird, die nicht threadsicher ist. Das sind nicht alle, aber einige (zahlreiche) sind es. Das müsste man im Zweifelsfall selbst testen.

Und ja, ich kenne den Abschnitt im PHP-Manual. ;)
 
Die Files werden per Redirect verteilt. Das Script nennt sich MFHS von yabsoft.com

Und es werden neben PHP noch ein paar CGI Scripte eingesetzt!
 
Die Files werden per Redirect verteilt.
Also verteilen sich die 600 User auf 4 Server. Ergo hat jeder Server im Schnitt 150 User.

Und es werden neben PHP noch ein paar CGI Scripte eingesetzt!
CGI ist keine Programmiersprache sondern nur eine Schnittstelle. Daher die ständige Nachfrage nach der Sprache.

Aber jetzt bin ich im Bilde.
Es sind zwei Problemfelder:
a) Der Front-Server, der viele aber jeweils nur kurze HTTP-Requests beantworten muß und die DB und wahrscheinlich auch Email hält.
b) Die Back-Server, die vor allem lange Verbindungen aushalten müssen.

Beide müssen unterschiedlich gehandelt werden.
Den Front-Server würde ich auf schnelle MySQL-Abfragen optimieren und den Apache minimieren. Aus Performance-Gründen auf mod_php und damit auf Prefork setzen oder auf Lighttpd wechseln. Falls Du viele Emails empfängst oder verschickst und evtl. die Queue etwas größer wird und auch noch SpamAssassin o.ä. laufen soll, würde ich die Emails auf einen weiteren Server auslagern und lokale dorthin relayen.

Auf den Back-Servern würde ich alles außer den Apache abschalten. Lediglich einen minimierter Email-Relay auf den Front-Server und evtl. snmpd zur Überwachung. Dazu Apache minimieren (evtl. mit dem Worker experimentieren oder auf Lighttpd wechseln), so daß er 150 bis 200 (oder mehr) Request gleichzeitig laufen lassen kann.

huschi.
 
Danke für deine Hilfe!

Es werden täglich immer mehr user. Der Mailserver stellt kein Problem dar, es sind lediglich 4 eMail Adressen eingetragen, die kaum eMails bekommen.

Habe schon mit lighttpd experimentiert, jedoch läuft das MFHS Script darauf nicht. Habe schon überlegt mal mit nginx zu experimentieren, da er sehr schnell sein soll und wenig Ressourcen verbraucht.

Es laufen kaum andere Dienste bzw vernachlässigbare Dienste auf den Servern. Apache ist der Hauptdienst, der am meisten frisst!

Ich rechne zum Julianfang mit 1000 Usern die gleichzeitig on sind.

Jetzt muss ich mich ans Finetuning machen, jedoch hab ich noch nicht so viel Ahnung davon, wäre also für jede Hilfe dankbar!


Was haltet ihr von "nginx"? Hat schon jemand damit Erfahrung?
 
Back
Top