CPU Last einzelner Vhosts

Apache, Lighttpd, nginx, Cherokee
Post Reply
markus niewerth
Posts: 54
Joined: 2002-10-20 18:39
Location: Bocholt
Contact:
 

CPU Last einzelner Vhosts

Post by markus niewerth »

Hi,
ich hab ein kleines Problem mit einem PHP Programm, welches ziemlich viel CPU Last macht. In den Zeiten wo dieses Script die meisten Zugriffe hat, also gegen Nachmittag, ist der Apache kaum noch zu erreichen.

Dies ist natürlich für die anderen Webseiten auf dem gleichen Server nicht so schön, denn die sind von den Lasten auch betroffen. Kann man denn nicht die Last der einzelnen Apache VHosts begrenzen.

Was kann ich sonst noch alles machen damit ich die CPU Lastige Webseite von den anderen trennen kann und somit die Last komplett gering halte?

Wäre schön wenn einer ne Antwort parad hätte.

Gruß Markus
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover
Contact:
 

Re: CPU Last einzelner Vhosts

Post by alexander newald »

Markus Niewerth wrote:Hi,
ich hab ein kleines Problem mit einem PHP Programm, welches ziemlich viel CPU Last macht. In den Zeiten wo dieses Script die meisten Zugriffe hat, also gegen Nachmittag, ist der Apache kaum noch zu erreichen.

Dies ist natürlich für die anderen Webseiten auf dem gleichen Server nicht so schön, denn die sind von den Lasten auch betroffen. Kann man denn nicht die Last der einzelnen Apache VHosts begrenzen.

Was kann ich sonst noch alles machen damit ich die CPU Lastige Webseite von den anderen trennen kann und somit die Last komplett gering halte?

Wäre schön wenn einer ne Antwort parad hätte.

Gruß Markus
Hi,

ich glaube, da kann man nichts machen.

Alexander Newald
nn4l
Posts: 172
Joined: 2002-06-19 07:06
Contact:
 

Re: CPU Last einzelner Vhosts

Post by nn4l »

Ist es wirklich die CPU Last oder fängt der Server an zu swappen?

Siehe auch http://www.rootforum.org/forum/viewtopic.php?t=7839

Evtl. könnte man auch mod_php nutzen. Mehr Performance, aber weniger Sicherheit.
markus niewerth
Posts: 54
Joined: 2002-10-20 18:39
Location: Bocholt
Contact:
 

Re: CPU Last einzelner Vhosts

Post by markus niewerth »

Nein 100% nicht. Ich habe jetzt intensive Tests gefahren. Das PHP Script wird sekündlich über 300 - 400 mal aufgerufen.

Das killt jeden Server. Ich habe jetzt mal die maxClients höher gestellt. Gut, schneller ist der Apache zu erreichen, aber wenn die 300 clients bedient sind, dauert der Seitenaufbau ewig und die Load Avarage steigt bis über 6.00


Jemand Rat?
floschi
Userprojekt
Userprojekt
Posts: 3247
Joined: 2002-07-18 08:13
Location: München
Contact:
 

Re: CPU Last einzelner Vhosts

Post by floschi »

Markus Niewerth wrote:Das PHP Script wird sekündlich über 300 - 400 mal aufgerufen.
Wesentlich größer dimensionierter Server... ich hab' bei mir daheim mal mittles httperm solche Lasten auf ein PHP mit MySQL-Abfragen simuliert - da ging der Rechner tierisch in die Knie :(
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover
Contact:
 

Re: CPU Last einzelner Vhosts

Post by alexander newald »

Markus Niewerth wrote:Nein 100% nicht. Ich habe jetzt intensive Tests gefahren. Das PHP Script wird sekündlich über 300 - 400 mal aufgerufen.

Das killt jeden Server. Ich habe jetzt mal die maxClients höher gestellt. Gut, schneller ist der Apache zu erreichen, aber wenn die 300 clients bedient sind, dauert der Seitenaufbau ewig und die Load Avarage steigt bis über 6.00


Jemand Rat?
300 - 400 mal pro Sekunde??? Was ist das für eine Seite??

Das sind 777600000 - Das sind 777 Millionen Zugriffe pro Monat... ???

Alexander Newald
[tom]
Posts: 656
Joined: 2003-01-08 20:10
Location: Berlin
 

Re: CPU Last einzelner Vhosts

Post by [tom] »

Markus Niewerth wrote: Das PHP Script wird sekündlich über 300 - 400 mal aufgerufen.
Sorry, das glaub ich nicht. Um diese Last zu packen (PHP, nicht static), müßtest Du einen tiefergelegten Server mit BIT-Injection haben.

Wenn ich ein PHP Script lokal benchmarke, dass nur "Hello World!" ausgibt, komm ich mit meinem Root L auf 350 Requests per Second. Ã?ber das Netz (mit einer Ping Zeit von 32 ms) sind es nur noch ca. 8,5 Requests per Second. Bei einem umfangreicherm Script komm ich unter 1 Request per Second.

Das würde also bedeuten, Du hättest 300 bis 400 Client Zuriffe pro Sekunde (von unterschiedlichen Clients). Wenn das wirklich der Fall ist, fährst Du auf Maximum. Oder anders ausgedrückt: Dein Server ist dann zu klein.

[TOM]
markus niewerth
Posts: 54
Joined: 2002-10-20 18:39
Location: Bocholt
Contact:
 

Re: CPU Last einzelner Vhosts

Post by markus niewerth »

[TOM] wrote:
Markus Niewerth wrote: Das PHP Script wird sekündlich über 300 - 400 mal aufgerufen.
Sorry, das glaub ich nicht. Um diese Last zu packen (PHP, nicht static), müßtest Du einen tiefergelegten Server mit BIT-Injection haben.

Wenn ich ein PHP Script lokal benchmarke, dass nur "Hello World!" ausgibt, komm ich mit meinem Root L auf 350 Requests per Second. Ã?ber das Netz (mit einer Ping Zeit von 32 ms) sind es nur noch ca. 8,5 Requests per Second. Bei einem umfangreicherm Script komm ich unter 1 Request per Second.

Das würde also bedeuten, Du hättest 300 bis 400 Client Zuriffe pro Sekunde (von unterschiedlichen Clients). Wenn das wirklich der Fall ist, fährst Du auf Maximum. Oder anders ausgedrückt: Dein Server ist dann zu klein.

[TOM]
Also mein Webprogramm ist sowas ähnliches wie Nedstad, nur das wir eben nicht alles mitloggen wie die ;I
Aber in Spitzenzeiten komme ich auch logger auf mehr requests. Wir haben 500 Aktive Webseiten registriert, unter den ersten 100 Webseiten sind welche dabei, die haben 20000 Besucher bei 200000 Zugriffen am Tag.

Aber dennoch habe ich das Problem gelöst. Ich lasse einen zweiten Apache extra nur für das Programm laufen, der KeepAlive requests nicht behandelt. Also KeepAlive habe ich abgeschaltet und schon gings wie geschmiert.

Mein Server ist übrigens ein Root Server L mit einer 2GHZ Cpu, also einer der neusten. Auf einer alten Kiste lief das bei Tests garnicht. Aber eventuell auch da das selbe Problem!?


EDIT:

300 - 400 mal pro Sekunde??? Was ist das für eine Seite??

Das sind 777600000 - Das sind 777 Millionen Zugriffe pro Monat... ???
400 Zugriffe in der Sekunde werdens nicht sein, aber 200 - (in Spitzenzeiten von 12:00 Uhr - 22:00 Uhr)

Webalizer Statistik

Code: Select all

Month Daily Avg Monthly Totals 
Hits Files Pages Visits Sites KBytes Visits Pages Files Hits 
 
Feb 2003 1953797 1626407 1426128 191710 2312168 31883001 4601060 34227091 39033775 46891145 

Jan 2003 1685049 1385552 1205582 177484 2632959 37587033 5502034 37373046 42952120 52236534 
flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin
 

Re: CPU Last einzelner Vhosts

Post by flo »

Hi,

hab Deine Zahlen mal runtergerechnet von den Daily Avgs ... 23 Hits pro Sekunde sollten zu packen sein - das sind Hits, ich gehe davon aus, daß Du auch Bilder benutzt.

Seis drum - ich habe zwei Mal alle vier Jahre auch mal so einen Hochlastbetrieb und ich komme folgendermaßen zurecht:

1) Lagere aus, wenn es geht (z.B. virtueller Host für die Bilder, den Du eben umziehst ...

2) Setze die Maximalen Prozesse wesentlich herab - 300, das packt kein Rootserver, für einen 1000er - das ist jetzt der L - lasse ich bei Hochlast 80 laufen.

3) Erhöhe die PHP-Speicherzuweisung - dadurch werden umfangreiche Script scneller abgearbeitet und Du läuft nicht Gefahr, in TimeOuts zu kommen. Ergo: Prozeß wird schneller für neue Clients frei.

4) Vergib MaxClients, so daß der Apache sich ab und zu mal nen neuen Prozeß gönnt, wenn der seine Arbeit erledigt hat.

5) Reduziere ansonsten das Prozeß- rauf- und runtergefahre und laß die maximale Anzahl von Apachen von Anfang an ruhig idlen, wenn requests kommen, wissen die schon, was sie zu tun haben. ;-)

Grüße,

flo.
markus niewerth
Posts: 54
Joined: 2002-10-20 18:39
Location: Bocholt
Contact:
 

Re: CPU Last einzelner Vhosts

Post by markus niewerth »

Danke @flo.

Ich habe bisher fast alles so eingestellt. Ich bin nach langem suchen auch drauf gekommen was für die Performance am besten ist. Ich hab es so das ich immer noch ein paar idle Servers habe.

Code: Select all

2 requests currently being processed, 12 idle servers 
Es läuft jetzt einigermassen. Die Grafiken werden eh von einem anderen HTTP geholt. Also Ausgelagert ist schon genug. Das schöne ist jetzt das ich die ganzen Prozesse nicht mehr in Prozessbaum habe, die hat er nämlich nicht gepackt (tahts right). Danke nochmal für die guten Ratschläge, jetzt weiß ich wenigstens das ich ein bischen richtig lag.

Gruß Markus
flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin
 

Re: CPU Last einzelner Vhosts

Post by flo »

Prima, daß es klappt. ;-)

Ich bin auf die Verfahrensweise gekommen, weil mir der Server im Lastbetrieb auf Load 120 (!) hoch ist und ich nciht wußte, woran es lag, weil die Scripte nicht von mir und encoded waren, konnte ich auch nciht nachschauen, was er da treibt.

Und im Netz gibt es leider relativ wenig zu dem Thema, wie man (mit unseren Mitteln) Apache schnell macht.

Grüße,

flo.
swosher
Posts: 48
Joined: 2002-11-27 12:46
 

Re: CPU Last einzelner Vhosts

Post by swosher »

Nur mal eben so wegen der Last bei Webstatistik....

ich war bis vor kurzem für (werbung an) netnugget.de (werbung aus) in der Administration tätig wir waren bei ~ 30 request pro sekunde und haben das über nen Loadbalancer mit ca. 10 Server gefahren.

Nur als Denkanstoss, dein Server braucht ~ 2 Sek bis die Seite abgearbeitet ist, die Seite des Kunden ~ 1 ohne deine Statistik mit ~ 3 Sekunden.

Wird dein Script nun noch langsamer haben deine Kunden echt ein Problem.

Was dabei auch nicht zu vergessen sind, wie sieht es mit den Connections aus ? Mach mal einen "netstat -a" wenn der Server so richtig läuft... (stichwort Kernellimits)

Aber wenn interesse da ist, können wir gerne mal zu dem Thema Mailen ...
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover
Contact:
 

Re: CPU Last einzelner Vhosts

Post by alexander newald »

swosher wrote:Nur mal eben so wegen der Last bei Webstatistik....

ich war bis vor kurzem für (werbung an) netnugget.de (werbung aus) in der Administration tätig wir waren bei ~ 30 request pro sekunde und haben das über nen Loadbalancer mit ca. 10 Server gefahren.
Ja ja, immer diese Interna verraten....

Alexander Newald
swosher
Posts: 48
Joined: 2002-11-27 12:46
 

Re: CPU Last einzelner Vhosts

Post by swosher »

Alexander Newald wrote: Ja ja, immer diese Interna verraten....
Ich weiß jetzt zwar nicht wie du das gemeint hast, aber mein Wissen kann ich weitergeben, da ich keine geheimhaltungs/unterlassungs irgentwas unterschrieben habe..

Wenn du es nichts glaubst, kann ich dich wohl eh nicht vom gegenteil überzeugen..
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover
Contact:
 

Re: CPU Last einzelner Vhosts

Post by alexander newald »

swosher wrote:
Alexander Newald wrote: Ja ja, immer diese Interna verraten....
Ich weiß jetzt zwar nicht wie du das gemeint hast, aber mein Wissen kann ich weitergeben, da ich keine geheimhaltungs/unterlassungs irgentwas unterschrieben habe..

Wenn du es nichts glaubst, kann ich dich wohl eh nicht vom gegenteil überzeugen..
Mojen, nicht gleich angegriffen fühlen am frühen und sonnigen Mittwoch morgen!!! Ich fands nur spannend, dass 30 Hits/sek. schon per Loadverteiler auf 10 Server verteilt werden.

Mehr nicht.

Alexander Newald
arty
Userprojekt
Userprojekt
Posts: 729
Joined: 2002-06-12 10:11
Contact:
 

Re: CPU Last einzelner Vhosts

Post by arty »

Hi,

schreibe das PHP-Skript doch einfach in C, dass ist sicherlich ein mehrfaches performanter als ein PHP-Skript!

bye
arty
swosher
Posts: 48
Joined: 2002-11-27 12:46
 

Re: CPU Last einzelner Vhosts

Post by swosher »

aso *g* sorry bin da meinchmal etwas :?

Naja wir hatten halt hinten dran ne fette DB wo alles reingeschrieben wurde..

Durch die Loadbalancer konnten die Antwortzeiten sehr gering gehalten werden (und natürlich einer Optimierung im Backend).

~ 30 pi/s im mittel waren es.. und das 24 h 7 tage die Woche usw..

Spitzen müssen ja abgefangen werden, wir hatten halt eine menge von Seiten, die nur zu bestimmten Uhrzeiten richtig Traffic gemacht haben. (Arcor, msn.at, telekom.at, moneycab als beispiele).

Gruß

Swosher
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover
Contact:
 

Re: CPU Last einzelner Vhosts

Post by alexander newald »

swosher wrote:aso *g* sorry bin da meinchmal etwas :?

Naja wir hatten halt hinten dran ne fette DB wo alles reingeschrieben wurde..

Durch die Loadbalancer konnten die Antwortzeiten sehr gering gehalten werden (und natürlich einer Optimierung im Backend).

~ 30 pi/s im mittel waren es.. und das 24 h 7 tage die Woche usw..

Spitzen müssen ja abgefangen werden, wir hatten halt eine menge von Seiten, die nur zu bestimmten Uhrzeiten richtig Traffic gemacht haben. (Arcor, msn.at, telekom.at, moneycab als beispiele).

Gruß

Swosher
Ah, mir kam 30 nur relativ wenig vor, aber stimmt, im Monatsmittel ist das dann doch mehr....

Alexander Newald
markus niewerth
Posts: 54
Joined: 2002-10-20 18:39
Location: Bocholt
Contact:
 

Re: CPU Last einzelner Vhosts

Post by markus niewerth »

@arty
Ich kann aber nur PHP ^^, mit C fange ich grad erst an.

Aber mir ist da in diesen Wochen einiges aufgefallen. Und zwar habe ich bei wget mal die Durchschnittswerte angesehn, sind wir nur noch an 10MBIT angebunden? Gemerkt habe ich das beim saugen einer großen Datei (650MB), früher brauchte ich noch 1min 50sek, jetzt knapp 10min.

Und ich frage mich mitlerweile ob 1und1 die Server nur dediziert anbietet. Denn nirgends findet man Infos ob es ein Dedizierter Server ist oder ein richtiger Hardwareserver.

Weis da einer was?
jamesb
Posts: 661
Joined: 2002-05-08 15:35
Location: Karlsruhe
Contact:
 

Re: CPU Last einzelner Vhosts

Post by jamesb »

Das mit den Durchschnittswerten kannst du nicht auf einen Tag machen, denn es könnte z.B. sein dass der andere Server oder die Leitung überlastet war. Um deine richtige Speed rauszufinden, musst du das ganze öfter und mit verschiedenen Servern machen.
Und es sind tatsächlich komplette Hardwareserver, die 1&1 da anbietet :)

JamesB
markus niewerth
Posts: 54
Joined: 2002-10-20 18:39
Location: Bocholt
Contact:
 

Re: CPU Last einzelner Vhosts

Post by markus niewerth »

P.S.: Ich habe bereits 2 dieser Rootserver, wieso sollte ich also Lügen, das habe ich schon auf beiden getestet. Von Server zu Server und maximal 10MBIT. Und jetzt grad eben ist der Server wegen Verbindugsstörungen garnicht zu erreichen.

Ich erreiche einen Durchschnitt von 7.70 MB/s
ist sehr Mager würde ich mal behaupten.

Scheint wohl am Umzug zu liegen. Denn diese Störungen habe ich sehr oft, laut Monitoring Service. Ich bin mitlerweile nicht mehr so begeistert, von den root Kisten.
fubbel
Posts: 84
Joined: 2003-02-17 14:49
 

Re: CPU Last einzelner Vhosts

Post by fubbel »

hmmm

7,7mb/s ist doch nicht so schlecht wie du das gerade beschreibst.

maximal geht ja eh nur 12mb/s in eine richtung durch.
das machen die platten sowieso nciht mit. und ist abgesehen davon auch nur ein theoretischer wert.

viel mehr als 9mb/s macht die platte nicht. und dann darf se nicht anderst weitig beschäftigt sein. sonst bircht der wert gleich sehr stark ein.

was hast denn im durschnitt vorher gehabt ?
wenn die 7,7 in deinen augen so schlecht sind.


gruss

edit: 10mbit kann ja nicht sein bei 7,7mb/s. :wink:
jamesb
Posts: 661
Joined: 2002-05-08 15:35
Location: Karlsruhe
Contact:
 

Re: CPU Last einzelner Vhosts

Post by jamesb »

Ich glaube, du verwechselst was:

10 MBit/s = 10 Millionen Bit pro Sekunde
10 MB/s = 10 Millionen Byte pro Sekunde

Du musst deine MBit-Angaben also durch 8 teilen, um die MB-Zahlen zu bekommen, anderstherum musst du die MB/s-Angaben mit 8 multiplizieren, um auf die MBit-Angaben zu kommen. So sind 7,7 MB/s etwa 61,6 MBit/s, und dazu kommt dann noch der Protokoll-Overhead etc..., was da noch dazugerechnet werden muss.

JamesB
Anonymous
 

Re: CPU Last einzelner Vhosts

Post by Anonymous »

jaja, immer diese dynamischen seiten :)
die fressen halt mal viel, also entweder aufrüsten (dual xeon kann ich nur empfehlen) oder/und ein paar mühlen mehr hinstellen und loadbalancer.

bei forum oder ähnliches gibts eventuell dann noch nen problem mit der datenbank. (je nachdem wieviel die ausgelastet ist, ich persönlich habe nie mehr als 50 hits / second im peak jemals gehabt)
Post Reply