Entwickler-Ecke
Wünsche, Anregungen & Kritik - [Performance]
BenBE - Mi 09.04.08 18:41
Titel: [Performance]
Hi,
mir ist in den letzten Tagen gehäuft aufgefallen, dass gerade zu Zeiten, wo normal relativ viele Leute hier im Forum sind (vormittags \mittags rum), das Forum langsam zu werden scheint. Damit mein ich nicht, dass der Server nur Kaffee trinkt, bevor eine Antwort kommt, sondern richtiggehend Latenzen bei z.B. relativ einfachen Funktionen wie dem Posten in die SB, die mit unter zu solchen Spitzenzeiten 10 Sekunden brauchen können.
Dieses Verhalten beobachte ich etwa seit dem Update auf 3.1.5 und wurde darauf auch schon von anderen angesprochen.
Könnt ihr das beschriebene Laggen des Servers selbst bei einfachen Operationen bestätigen, grad in Hinblick, dass dies weentlich dominanter wird, je mehr Leute grad aktiv sind?
TIA,
BenBE.
Regan - Mi 09.04.08 18:48
Ich würde mich hier mal anschließen. Mir fällt es eigentlich am Meisten auf, wenn ich "Die letzten 10" aktuallisiere. Das dauert länger als 10 Sekunden, obwohl das ja nur wenige Zeilen Code sind :gruebel: . Schlimm wird es auch, wenn man sich irgendetwas über Ajax anschauen möchte. Zum Beispiel das Reinladen des Zitats von unten aus der Box dauert knapp 5 Sekunden.
Ich möchte auch anmerken, dass ich kein ISDN oder Moden habe, das diesen langsamen Datenfluss rechtfertigt :wink: .
BenBE - Mi 09.04.08 19:26
Jep, auch bei mir dürfte die Internet-Verbindung das geringste Problem sein: 340 MBit Backbone-Anbindung an's Rechenzentrum (derzeit über WLAN, theortetisch auch 100MBit möglich)...
Silas - Mi 09.04.08 20:14
Bei mir funktioniert das laden bei den letzten 10 öfter gar nicht.
Früher war es doch (im Gegensatz zu jetzt) so, dass der Aktualisieren- bzw ">>"-Button "hängen" geblieben ist, während das Skript geladen hat... Wurde das geändert?
Christian S. - Mi 09.04.08 20:26
Silas hat folgendes geschrieben: |
Bei mir funktioniert das laden bei den letzten 10 öfter gar nicht. |
Nicht Thema dieses Threads ;-)
Silas hat folgendes geschrieben: |
Früher war es doch (im Gegensatz zu jetzt) so, dass der Aktualisieren- bzw ">>"-Button "hängen" geblieben ist, während das Skript geladen hat... Wurde das geändert? |
Es wurde nur das geändert, was in der Ankündigung steht. :-)
Heiko - Mi 09.04.08 20:28
Bei mir dauert es auch unerträglich lange (Klick auf Antworten -> 20 Sekunden warten auf Beitraseditor :( ).
Ich glaube, in dem Update war jetzt der PArt dabei, der Skylla zum scheitern brachte.
@CS: Könnte es vlt. sein, dass die SB-Anfragen zu viel "fressen"?
Christian S. - Mi 09.04.08 20:37
Heiko hat folgendes geschrieben: |
Ich glaube, in dem Update war jetzt der PArt dabei, der Skylla zum scheitern brachte. |
Diese heimliche "Hoffnung" habe ich auch, denn das würde den Fehler stark eingrenzen.
Heiko hat folgendes geschrieben: |
@CS: Könnte es vlt. sein, dass die SB-Anfragen zu viel "fressen"? |
Da denke ich schon eine Weile drüber nach. Einerseits ist das der erste Kandidat, den man vermuten würde. Andererseits: bei 100 Gästen und zwei Dutzend Registrierten, die noch nichtmal alle AJAX aktiviert haben, sollten die paar Abfragen der übersichtlichen Shoutboxtabelle nicht ins Gewicht fallen. Vielleicht schalt ich das automatische Shoutbox-Update einfach mal ab und dann schaut Ihr, ob's besser wird :nixweiss:
Silas - Mi 09.04.08 20:42
Christian S. hat folgendes geschrieben: |
Silas hat folgendes geschrieben: | Bei mir funktioniert das laden bei den letzten 10 öfter gar nicht. |
Nicht Thema dieses Threads ;-) |
Ich meinte "Das Laden der letzten 10 dauert meistens sehr lange, oft funktioniert es gar nicht bzw. dauert so lange, dass es so aussieht, als ob es gar nicht funktionieren würde." :wink:
Christian S. - Do 10.04.08 10:31
Habe gestern abend zweimal noch was ausprobiert. Nach dem ersten Mal wurde gesagt, es hätte nicht viel gebracht, beim zweiten Mal war kaum einer mehr online *g*
Was ich gemacht habe, ist, dass den sechs am meisten auftretenden Suchrobotern die Sidebar (und damit auch die recht aufwändigen letzten 10) nicht mehr angezeigt werden und außerdem kann die shoutbox_view.php nicht mehr von Gästen angezeigt werden.
Ich habe den Eindruck, dass die Performance jetzt so gut ist, wie vor dem Update. Aber wie gesagt, es kann auch sein, dass mein Internet mal wieder nett zu mir ist ;-)
BenBE - Do 10.04.08 10:34
Ich beobachte das mal die Tage; bisher scheint es aber schon wieder besser geworden zu sein.
Christian S. - Mo 14.04.08 21:27
Ich habe das automatische Shoutbox-Update testweise deaktiviert, um die Auswirkungen auf die Performance des Servers festzustellen.
Heiko - Di 15.04.08 08:50
Also das Forum fühlt sich jetzt wieder normal an. Das liegt vlt. an der frühen Stunde, wo so wenig registrierte online sind (5 von 113 Benutzer nur eingeloggt).
@CS: wenn sich die SB als Ursache endgültig herausstellt, kannste es ja mal versuchen, in dem du die letzten 30 der SB in eine Datei auslagerst, wodurch die DB entlastet wäre.
Regan - Di 15.04.08 12:35
Also ich finde das Forum zur Zeit sehr schnell. Keine Ahnung an was das liegt, aber vor allem das Laden der Seiten geht sehr schnell.
BenBE - Di 15.04.08 13:20
Kann ich bestätigen ...
@Christian: Könntest Du mal schauen, ob es funzen würde, die SB-Seite mit MemCache oder in ner File vorgerendert für User und Admins abzulegen und dann nur noch aus diesem Cache zu bedienen ???
Christian S. - Di 15.04.08 14:25
Hallo!
Das Anzeigen der Shoutbox dürfte nicht das Problem gewesen sein, denn die Aktualisierung wurde ja nur dann ausgeführt, wenn ein per AJAX übertragener Hash zeigte, dass sich etwas geändert hat. Meistens zeigt der Hash aber, dass alles beim Alten ist. Tatsächlich waren es also die Anforderungen des Hashes, die zu der Serverlast führten.
Die Datenbankabfrage, die dort ausgeführt wird, ist sehr einfach und kaum noch zu optimieren. Angeregt durch Eure Vorschläge kann ich aber mal probieren, den Hash bei jedem Shout zu generieren und in eine PHP-Datei zu schreiben, welche dann nur eingebunden werden muss.
Grüße
Christian
Yogu - Di 15.04.08 15:19
Christian S. hat folgendes geschrieben: |
Tatsächlich waren es also die Anforderungen des Hashes, die zu der Serverlast führten. |
Ist der Hash nicht ein bisschen zu groß geworden? Ich meine, eine XML-Datei wäre da doch nicht unbedingt notwendig gewesen, oder? Ich weiß, 224 Byte sind nicht sehr viel, aber trotzdem wäre eine einzelne Hex-Zahl als letzer Shoutbox-Post doch relativ viel weniger.
Das hier wird alle zehn Sekunden
zwei mal übertragen:
Quelltext
1: 2: 3: 4: 5: 6:
| <?xml version="1.0" encoding="utf-8" ?> <root> <newTime>--------------</newTime> <newId>497653-497636-497632-497596-497577-496821-496820-496758-496757-496752-496751-496747-496739-496735-496733</newId> <bar>foo</bar> </root> |
Vom Server bis zu mir dauert das im Schnitt 800-1000 Millisekunden. Ich denke, da könnte man mit einer Hexzahl noch etwas rausholen.
Und das hier ist die URL:
Quelltext
1:
| http://www.delphi-forum.de/ajax_instant_notification.php?mode=topic_review&dummy=1208265208265&topic_id=82418&lastTime=--------------&lastId=497653-497636-497632-497596-497577-496821-496820-496758-496757-496752-496751-496747-496739-496735-496733&minPostId=496733 |
Ich kenn mich da zwar nicht so arg aus, aber das sieht doch schon verdammt viel aus.
Es kann sein, dass ich mich hier verdammt irre, aber ich finde das doch sehr viel Aufwand für eine einfache Überprüfung.
Viele Grüße,
Yogu
Christian S. - Di 15.04.08 15:51
Du vermischst da was, Du postest teilweise Sachen für die Topic-Review, welche ja sehr gut funktioniert. Für die Review sind die Daten auch alle nötig. Bei der Shoutbox kann man da vielleicht was einsparen (die URL ist da z.B. sowieso deutlich kürzer), aber das macht den Braten nicht wirklich fett.
Zum XML: Leider sind manche Browser sehr verschnupft, wenn man bei einem XMLHttpRequest kein valides XML überträgt, das muss also sein.
Yogu - Di 15.04.08 16:11
Ok, da hab ich wohl was beim Posten durcheinander gebracht. :?
Aber beim Posten fällt es mir auch sehr oft auf, dass der Editor alle 10 Sekunden für ein paar hundert Millisekunden schlapp macht. Das ist dann wohl genau das. Blöderweise wird in dieser Zeit meine CPU komplett ausgelastet, deswegen hängt die Eingabe. Natürlich werden die Tastatur-Messages gleich danach ausgewertet, aber es sieht ein bisschen so aus wie die früheren elektronischen Schreibmaschinen. :)
Ich denke, da könnt ihr nicht viel machen, aber vielleicht gibt es ja doch einen netten Javascript-Befehl, der die Priorität runtersetzt. Wäre schön. Ansonsten könnte man vielleicht die Update-Zeit auf 30 Sekunden setzen?
Heiko - Di 15.04.08 17:31
Christian S. hat folgendes geschrieben: |
Das Anzeigen der Shoutbox dürfte nicht das Problem gewesen sein, denn die Aktualisierung wurde ja nur dann ausgeführt, wenn ein per AJAX übertragener Hash zeigte, dass sich etwas geändert hat. |
Wofür einen Hash? Reicht es nicht die Zeit des letztens Posts zu vergleichen?
Christian S. - Di 15.04.08 17:33
Nein, wir können ja auch eines mitten raus löschen. Mit dem, was ich oben dazu schrieb, würde jetzt ein Änderungszeitpunkt gespeichert und abgerufen, das sollte schneller gehen.
Yogu - Di 15.04.08 17:35
Heiko hat folgendes geschrieben: |
Reicht es nicht die Zeit des letztens Posts zu vergleichen? |
Oder die Zeit der letzen Änderung :?:
Heiko - Di 15.04.08 20:32
Christian S. hat folgendes geschrieben: |
Nein, wir können ja auch eines mitten raus löschen. |
Dann eben die Zeit der letzten Änderung :roll:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!