Optimierung
Hallo!
Anzeigen vom Suchergebnis:
Wenn dann das Suchergebnis von stokk feststeht und man klickt die Unterseite [4] an, dauert es ganze 160 Sek. bis das Ergebnis präsentiert wird. Was macht die Software jetzt? Nochmals suchen und die Seite [4] darstellen?
Was die Software nach meiner Kenntnis macht, ist folgendes:
Zunächst wird die Gesamtzahl der Ergebnisse ermittelt, die dem Suchstring entsprechen. Auf Basis dieser Zahl wird in Verbindung mit der Einstellung "search results per page" (läßt sich im Adminbereich einstellen) die Anzahl der Ergebnisseiten berechnet.
Dann werden erst die Suchergebnisse selbst aus der Datenbank ausglesen, wobei durch die ausgewählte Seite der "Versatz" innerhalb der Liste aller Suchergebnisse bestimmt wird. Heißt: Sind 25 Ergebnisse pro Seite eingestellt und Seite 3 ausgewählt, werden nur die Ergebnisse 51 bis 75 ausgewählt und dargestellt.
Allerdings wird die Anfrage bei jeder Seitenauswahl ausgeführt, d. h. es ist tatsächlich jeder Seitenaufruf auch mit einer SELECT-Anfrage an die MySQL-Datenbank verbunden. Das erklärt den von Dir erwähnte Reaktionszeit bei jeder Seitenauswahl (aber nicht das Grundproblem, daß diese Reaktionszeit überhaupt so lange ist).
Ergebnis:
Hier arbeitet die Software anders, oder besser gesagt einfach nur fehlerhaft!
An der Hardware und Datenmenge kann es wohl nicht liegen.
Das Geschwindigkeitsproblem bei sehr großen Istanzen My little Forums wurde hier bereits diskutiert:
https://mylittleforum.net/forum/index.php?id=7410
Die Entwickler kamen damals nach Analyse des Codes zu dem Schluß, daß es nicht an der Software liegen könne, wenngleich punktuell Optimierungsbedarf bestehe. Das würde aber nur leichte Verbesserung, keine Lösung des Problems bieten, vgl. hier.
Der Betreiber eines Forums mit 235.000 Beiträgen hat sich damals damit über die Runden geholfen, die Datenbank jeden Abend manuell zu optimieren, vgl. hier bzw. hier. Das scheint wenigstens zeitweise geholfen zu haben, wobei das Forum rasch wieder langsamer wurde.
Was die Leistung merklich verbesserte, war eine Reduktion der Botaktivität mittels "ZB Block".
Es würde wohl auch etwas bringen, die aktivsten Bots serverseitig vom Forumszugriff pauschal auszuschließen (z. B. in der .htaccess). Die Forumssoftware erlaubt im Adminbereich in der Subkategorie "Spam" ebenfalls den Ausschluß bestimmter User Agents.
Nachdem sich durch Codeoptimierung nicht viel machen läßt, liegt das Problem wohl zuvörderst bei der Datenbank, die bei vielen Beiträgen und einer hohen Zahl Anfragen in die Knie geht.
Eine Kombination mehrerer Maßnahmen würde vielleicht helfen:
- Regelmäßige Optimierung der Datenbank, vielleicht automatisch mittels eines Cronjobs.
- Konsequentes Blocken der Bots, da diese für den Großteil der Zugriffe verantwortlich sind und Ressourcen belegen, die für reguläre Nutzerzugriffe nicht mehr zur Verfügung stehen.
- Serverseitige Optimierung der Konfiguration, z. B. eine höhere Ressourcenzuteilung in der MySQL-Konfigurationsdatei (my.ini; diverse Variablen, die mit Buffer-Size, Packetgrößen usw. zu tun haben).
Gruß
Taurec
--
„Es lebe unser heiliges Deutschland!“
„Was auch draus werde – steh’ zu deinem Volk! Es ist dein angeborner Platz.“
Weltenwende