Usergästebuch bremst die Seite aus?!

Begonnen von Atze, 04 Januar 2006, 12:50:03

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Atze

Hi,
das Problem habe ich jetzt noch nicht im Forum gefunden, aber es wurde mal kurz im Zusammenhang einer etwas langsameren Seite angesprochen.
Von hier: http://www.pragmamx.org/modules.php?name=Forum&topic=14345.0
Zitat von FrankP Antwort 4:
ZitatDer Vollständigkeit halber: Sonst ist keinerlei Lastiges festzustellen, UserGb macht etwas Dampf, doch einigermaßen durch caching abzufangen.

Das etwas Dampf hat sich jetzt als sehr viel Dampf rausgestellt. Die Seite kann nicht mehr normal besurft werden, wenn das Userguest ein ist! Hab es jetzt deaktiviert bis auf weiteres. Auch alle Einschränkungen haben bis dato nichts gebracht. (html aus, textgrenze, GB einträge limit, umblättern, etc)

Wieso ist das GB eigentlich so belastend?? Normal zeigt es doch nur 10 Einträge pro Person an??
Mein Hoster hat noch gemeint, man müsste es evtl. die Einträge pro User auf eine Tageslimit einstellen.

Nur zur Erklärung. Ich habe teilweise User die mehr als 500 Einträge mit html Code etc vollgespammt haben!

Zu meinem Problem. Ich würde das GB ja aus lassen, aber die User mögen das GB enorm!
Was kann ich tun um das Ding zu tunen oder evtl. so einschränken das es schneller läuft??

Danke im vorraus...
Gruß





Fahr mal das Becks hoch!

jubilee

Hallo !
Zitat
Was kann ich tun um das Ding zu tunen oder evtl. so einschränken das es schneller läuft??

Am Quellcode ist da nix zu tunen. Wenn die User es schaffen, den Server mit den Datenbankabfragen des Usergästebuches flachzulegen, dann ist das so. KA wo man da noch etwas rausfiedeln will.
Kannst höchstens mal mit den Einstellungen experimentieren.
Max. Anzahl an Einträgen runtersetzen.
Max. Anzahl an Zeichen pro Eintrag runtersetzen.
HTML aus (dann auch Spaw ausschalten).
PM bei Eintrag ausschalten.
User verbieten in seinem eigenen Gästebuch zu posten.

Das sind die Möglichkeiten. Wieviel User tumeln sich denn so im Usergästebuch ??

MfG
jubilee

Atze

ZitatDas sind die Möglichkeiten. Wieviel User tumeln sich denn so im Usergästebuch ??
Also die seite lahmt sobald ich es einschalte. von der einen sekunde auf die andere??

Als ich gekuckt habe, waren es 2 User im User Guest!
Von dir gennante Maßnahmen sind alle aktiv inkl. Backup aus!
Speicherplatz habe ich bei der DB = Insgesamt     133.273     KB

Also irgendwie läuft doch da was schief??

Wie schauts mit Tabellen leeren aus??

Gruß

p.S. kannst gern selber mal einschalten und das ergebniss besurfen  ;)
Ich lege dann ein adminzugang an...

Fahr mal das Becks hoch!

munzur

Hi!

Also ich selber benütze es auch und meine db ist: 1144.285 Kb
Und hab sowas noch nicht erlebt, wenn doch dann ists mir nicht aufgefallen.

Eine Lösung habe ich nicht wirklich für dich auser dass wenn bei dir HTML aktiv ist das einer ein code eingetragen hat der das vielleicht verursacht.

L.g
"Debug-Mode" einschalten.
"SQL-Fehler anzeigen" einschalten
und evt. auftauchende Fehlermeldungen posten .

Atze

DAs könnte sein, ein so brutaler Html Smilie-Code mix! :thumbdown:
Wie genau kann ich nur die inhalter der tabellen mit dem phpmyadmin löschen?
Über den leeren button, wars das schon oder muß ich was beachten?

Gruß
Fahr mal das Becks hoch!

Andi

Moin :)

ich habe da nen Verdacht...

Schau mal in der /modules/UserGuest/index.php Zeile #218 steht folgender Code:
$eintrag['text'] = wordwrap2($eintrag['text'], $umbruch, "<br> ", " ");

Kommentier die Zeile mal aus und gugg ob sich was ändert ;)
schön´s Grüssle, Andi

Atze

Hi,
ja habs getestet, da ging dann auch nichts mehr. Kurzzeitig war sogar "Datenbankproblem" und die Seite war nicht zu erreichen.

Ich kann dir gern mal ein Zugang geben, damit es selber siehst, wie bei aktivieren das ganze auf einmal lahmt.
Kannst gern auch mal so versuche machen mit derm User GB

GRuß
Fahr mal das Becks hoch!

FrankP

Das kurzzeitige Datenbankproblem war der Provider, da wir- um den Server überhaupt noch zu halten - Dienste kurzzeitig stoppen mussten.

Ich habe jetzt mal das Monitoring für die Load abgeschalten - dann muss nicht immer einer von uns nachschauen, wenn ihr am testen seid  ;) und unternehme vorerst bei Überlast nichts.
Webhosting für pragmaMx www.abundus.de
Wer Butter will soll Butter kaufen, statt stundenlang auf die Milch einzudreschen und sich zu wundern, warum nur Käse rauskommt.

munzur

Hallo!


@Atze: Ja mach mal ein Backup von der Tabelle und schicks mir mal nur aus neugier :)
Und leere dann mal die Tabelle und wenn der fehler noch besteht kannst ja die Tabelle mit dem Inhalt ja wieder herstelllen.


L.g
"Debug-Mode" einschalten.
"SQL-Fehler anzeigen" einschalten
und evt. auftauchende Fehlermeldungen posten .

Andi

Moin :)

ich habe das hier auf meinem localhost getestet.
Ein Usergästebuch mit 5 Einträgen eines Users, mit jeweils mehreren hundert Zeilen Text (inkl. html), haben meinen Rechner fast zum einschlafen gebracht.
Als die Zeile auskommentiert war, war keinerlei besondere Last zu bemerken.

Es kann nur an dieser Funktion wordwrap2() liegen, die ist sehr serverlastig gecodet und ist das einzige was im Usergästebuch irgendwie auffällig ist.
Die Datenbankabfragen sind 08-15, nur ganz einfache Selects und pro Seitenaufruf auch nur Eine....
schön´s Grüssle, Andi

Atze

Hmm,
bringt nicht wirklich was!
Geht nicht, da fällt alles aus!


Bringt die Tabellen leeren was??
Vielleicht zu viel Spam drin??

Gruß
Fahr mal das Becks hoch!

Atze

Hab noch festgestellt,
das unter 50 user eigentlich fast alles normal läuft bis auf gelegentliche Spitzen.
Aber über 70 User bremst es immer...  ???

Vielleicht hilfts...
Gruß



Fahr mal das Becks hoch!

Andi

hmmm, wenn es das nicht ist, noch ne andere Idee, mir ist gerade was aufgefallen...

Sämtliche Tabellenfelder der Usergästebuchtabelle nach denen gesucht und sortiert werden soll, sind nicht mit einem Index versehen.

Ändere mal die Usergästebuchtabelle mit folgenden 5 Befehlen per phpMyAdmin:

ALTER TABLE `mx_userguest` ADD INDEX `date` ( `date` )  ;
ALTER TABLE `mx_userguest` ADD INDEX wer( `wer` ) ;
ALTER TABLE `mx_userguest` ADD INDEX dummy( `dummy` ) ;
ALTER TABLE `mx_userguest` ADD INDEX touserid( `touserid` ) ;
ALTER TABLE `mx_userguest` ADD INDEX fromuserid( `fromuserid` ) ;


Wenn das dann auch nicht hilft, dann ist das Latein am Ende...
schön´s Grüssle, Andi

Atze

Hi,
jetzt hast mich erwischt!
Ich als nicht PHPMYADMIN Profi!

Blöde Frage von mir:
ZitatALTER TABLE `mx_userguest` ADD INDEX `date` ( `date` )  ;
ALTER TABLE `mx_userguest` ADD INDEX wer( `wer` ) ;
ALTER TABLE `mx_userguest` ADD INDEX dummy( `dummy` ) ;
ALTER TABLE `mx_userguest` ADD INDEX touserid( `touserid` ) ;
ALTER TABLE `mx_userguest` ADD INDEX fromuserid( `fromuserid` ) ;

Also genau diese Befehle in der Tabelle "user_guest" bei " SQL-Befehl(e) in Datenbank ausführen" einfügen und auf "OK" drücken  :-[ :D :)

DAnke Gruß
Fahr mal das Becks hoch!

NeMeSiSX2LC

CMS-Version: pragmaMx 0.1.8, 1.20.4.5/2006-03-10     
PHP-Version: 5.1.2
MySQL-Version: 5.0.15-max-log
Server-Version: Apache/2.0.55
phpMyAdmin-Version: 2.7.0-pl1

Andi

Äh,

wie üblich natürlich den Präfix anpassen ;)
schön´s Grüssle, Andi

Atze

ZitatADD INDEX `date` ( `date` )  ;

Das hier außerhalb der Klammer bei "date" auch noch ein Hochzeichen ist, ist korrekt??
Die anderen haben es nicht.

Ich hab den genannten Prefix  :)

Gruß
Fahr mal das Becks hoch!

Andi

Ja, das ist richtig :)

date ist in mysql ein reserviertes Wort und ich weiss nicht wie verschiedene mysql-Versionen auf diesen Indexnamen reagieren. Die französischen Hochkomma's sagen mxsql. dass da ein Feld/Indexname kommt und kein reserviertes Wort.

Machs einfach, wenn Fehlermeldungen kommen, poste die hier ;)
Kaputtmachen kannste damit nichts.
schön´s Grüssle, Andi

Atze

Ihr SQL-Befehl wurde erfolgreich ausgeführt.
SQL-Befehl:
ALTER TABLE `mx_userguest` ADD INDEX `date` ( `date` ) ;# Betroffene Datensätze: 252700
ALTER TABLE `mx_userguest` ADD INDEX wer( `wer` ) ;# Betroffene Datensätze: 252700
ALTER TABLE `mx_userguest` ADD INDEX dummy( `dummy` ) ;# Betroffene Datensätze: 252700
ALTER TABLE `mx_userguest` ADD INDEX touserid( `touserid` ) ;# Betroffene Datensätze: 252700
ALTER TABLE `mx_userguest` ADD INDEX fromuserid( `fromuserid` ) ;# Betroffene Datensätze: 252700




Jetzt schau ma mal!
Gruß

P.S. Was ist das:      
gid,touser, text gibts auch noch??
Fahr mal das Becks hoch!

Andi

Jo, gugg mal ;)

ZitatP.S. Was ist das:     
gid,touser, text gibts auch noch??

Nur Felder, nach denen sortiert, verknüpft oder gesucht wird, benötigen evtl. einen Index um diese Operationen zu beschleunigen. Andere Felder zu indexieren ist unnötig und verbraucht unnötig Speicherplatz.
schön´s Grüssle, Andi