Lastoptimierung

Fragen zur Bedienung von phpBB 3.0.x, Probleme bei der Benutzung und alle weiteren Fragen inkl. Update auf die neuste phpBB 3.0.14 Version
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
Fennias Maxim
Mitglied
Beiträge: 489
Registriert: 12.08.2005 20:16
Wohnort: Technodrome
Kontaktdaten:

Lastoptimierung

Beitrag von Fennias Maxim »

Hallo,

mein Verein betreibt ein phpBB3.
Statistik:
Beiträge insgesamt: ~75000 • Themen insgesamt: ~6200 • Mitglieder insgesamt: ~5000
In den letzten Wochen sind in Stoßzeiten bis zu 50 User gleichzeitig online.
~1500 Beiträge/Tag.
Dann geht aber bei unserem Server der Laod-Wert auf 30.
Es ist ein DS7000 von Hetzner mit 8GB Ram und nem AMD 6000+ Dual-Core.
Ich frage mich an welchen Einstellungen ich jetzt noch "drehen" kann um die Last zu reduzieren? Also es sind so ziemlich alle Last-Optionen aus. (Keine Geburtstagsanzeige, keine Jump-Boxen etc.)
Außerdem wüsste ich gerne wo man das phpBB-eigene Template-Caching abschaltet. Wir wollen lieber squid nutzen aber die beiden verstehen sich wohl nicht. Des weitern wüsste ich gerne welche Tabellen in der Datenbank am meisten beansprucht wird um diese komplett in den Ram zu laden.

Gruß
Fennias
50% aller Fragen können mit der Knowledge Base oder der Forensuche beantwortet werden!
Warum hast du also diesen Thread hier eröffnet?
Benutzeravatar
Balint
Mitglied
Beiträge: 1815
Registriert: 25.01.2003 21:43
Wohnort: Stuttgart
Kontaktdaten:

Re: Lastoptimierung

Beitrag von Balint »

Hallo,

im Großen und Ganzen: siehe meine Beiträge hier: http://www.phpbb.de/community/viewtopic ... ilit=mysql

Den Cache kannst du deaktivieren, indem du die Option "Rekompilieren veralteter Style-Komponenten:" anschaltest.

EDIT: dieweltist schießt wieder am Thema vorbei...

Viele Grüße,
Bálint
Meine MODs für phpBB 2.x und phpBB 3.x!
Benutzeravatar
bantu
Server-Team
Beiträge: 7311
Registriert: 25.04.2006 16:12
Wohnort: Karlsruhe

Re: Lastoptimierung

Beitrag von bantu »

Hallo Fennias.
Fennias Maxim hat geschrieben:Statistik:
Beiträge insgesamt: ~75000 • Themen insgesamt: ~6200 • Mitglieder insgesamt: ~5000
In den letzten Wochen sind in Stoßzeiten bis zu 50 User gleichzeitig online.
~1500 Beiträge/Tag.
Dann geht aber bei unserem Server der Laod-Wert auf 30.
Auf phpBB.de sind eigentlich auch immer 50 Benutzer (oder zumindest Bots unterwegs) und der Server (mit etwas schlechterer Ausstattung) ist so gut wie gar nicht ausgelastet. Bei phpBB.com und Joomla! sind es einige mehr und beide Foren werden soweit ich weiß jeweils nur von einem einzigen Rechner betrieben (bis vor kurzem noch ein Pentium 4 bei .com). Also es geht auf jeden Fall ... zur Not dann halt auch mit mehreren Servern wie bei Bokt.nl.

Fennias Maxim hat geschrieben:Außerdem wüsste ich gerne wo man das phpBB-eigene Template-Caching abschaltet. Wir wollen lieber squid nutzen aber die beiden verstehen sich wohl nicht. Des weitern wüsste ich gerne welche Tabellen in der Datenbank am meisten beansprucht wird um diese komplett in den Ram zu laden.
Den Template-Cache zu deaktivieren macht keine Sinn, deshalb gibt es diese Option auch nicht. phpBB wandelt die phpBB-Templatedateien in PHP um und legt den PHP-Code anschließend im Cache ab um ihn von dort auszuführen. Beim Aufrufen einer Seite wird das fertige PHP dann aus dem Cache geladen und dem Benutzer präsentiert. Das Template muss also nicht nochmal neu in PHP umgewandelt werden. Hier sollte dann die übliche Zugriffsbeschleunigung für die Festplatte(n) greifen (Disk-Cache). Die ausgelieferten Inhalte sind hier immernoch dynamisch, weshalb ein Caching für PHP mit Squid nicht in Frage kommt. Mit Squid kann man allerdings statische Inhalte wie z.B. Bilder speichern oder die Last auf mehrere Rechner verteilen. Z.B. im Arbeitsspeicher, um Zugriffe auf die Festplatte zu minimieren. Eine alternative zu Squid wäre da auch noch Varnish.

Balint hat geschrieben:Den Cache kannst du deaktivieren, indem du die Option "Rekompilieren veralteter Style-Komponenten:" anschaltest.
Jain. Damit wird das Caching nicht deaktiviert, es wird nur zusätzlich vor dem Lesen aus dem Cache überprüft ob die Daten noch aktuell sind oder ob Veränderungen an den Template-Dateien des Board vorgenommen wurden. Wenn ja, wird der Cache verworfen und neu gefüllt. Es wird also immer auf die phpBB-Template-Dateien und auf den Cache zugegriffen. Wenn vorhersehbar ist, dass ein Ansturm auf das Forum kommt, sollte man diese Option also auf Nein setzen und wenn man Veränderungen an einem Template vorgenommen hat den Cache von Hand leeren. Im "Normalbetrieb" kann man die Option aber auf "Ja" lassen, damit man den Cache nicht ständig leeren muss.

Fennias Maxim hat geschrieben:Des weitern wüsste ich gerne welche Tabellen in der Datenbank am meisten beansprucht wird um diese komplett in den Ram zu laden.
Die einzige Tabelle, die wirklich in Frage kommt weil sie oft gebraucht wird, ist die Tabelle phpbb_sessions. Dazu hatte ich vor kurzem allerdings selbst auf diesem Board hier einen Test gemacht. Das Board wurde mit der Zeit langsamer, weil MySQL Tabellen mit der Storage-Engine MEMORY (also Speichern im RAM) nicht optimieren kann. Nach dem Zurückändern auf eine File-Storage-Engine war alles wieder flott.

Fennias Maxim hat geschrieben:Also es sind so ziemlich alle Last-Optionen aus. (Keine Geburtstagsanzeige, keine Jump-Boxen etc.)
Wenn nicht vorhersehbar ist, dass viele Benutzer das Board stürmen, lasse ich diese Optionen eigentlich immer einfach an. :)

Fennias Maxim hat geschrieben:Es ist ein DS7000 von Hetzner mit 8GB Ram und nem AMD 6000+ Dual-Core.
Läuft darauf nur das Board oder auch andere Applikationen?

Fennias Maxim hat geschrieben:Ich frage mich an welchen Einstellungen ich jetzt noch "drehen" kann um die Last zu reduzieren?
Hier sind noch ein paar Sachen.

Datenbank - Ich nehme an, ihr verwendet MySQL.
Boards mit vielen gleichzeitigen Besuchern sollten InnoDB als Storage-Engine anstatt dem MySQL-Default MyISAM verwenden. Durch die Transaktionssicherheit von InnoDB sollte die Anzahl der Race Conditions z.B. beim Erhöhen von Countern extremst minimiert werden. Auch insgesamt scheint mir InnoDB performanter für phpBB zu sein. InnoDB hat jedoch einen Nachteil, womit wir auch schon beim nächsten Thema wären: Suchen.

Suchen
phpBB kommt mit einer integrierten Suchfunktion, die spezielle Tabellen zum Suchen verwendet und mit allen unterstützten Datenbankmanagementsystemen funktioniert; und einem Plugin für MySQL Fulltext, da MySQL am häufigsten verwendet wird. Das erste skaliert nicht so gut wie das zweite, das zweite benötigt eben MySQL und sogar MyISAM Tabellen. Was besser skaliert, ist Sphinx. Das passende Plugin für phpBB gibt es auf der phpBB Code Forge: Sphinx for phpBB. Sphinx könnte man dann z.B. auch auf einen anderen Rechner auslagern.
Generell lässt sich die Suche so einstellen, dass sie bei einer gewissen Lastgrenze nicht mehr verwendet werden kann. Eben um Ressourcen zu schonen.

Caching
Was ihr auf jeden Fall haben solltet ist ein PHP-OpCode-Cache wie xCache oder APC. Wählt die Größe des OpCode-Caches so groß, dass der OpCode aller häufig verwendeter PHP-Dateien (also Board, Wiki, CMS, was immer ihr habt) darin Platz hat.
phpBB 3.0.6 bringt hier auch noch Caching-Plugins mit, mit denen man dann z.B. xCache nicht nur als OpCode-Cache sondern auch als Variablen-Cache verwenden kann (oder eben APC und memcache) um damit auch Daten im Arbeitsspeicher ablegen zu können.
Ein Caching der phpBB-Daten ist generell sinnvoll, da in den meisten Fällen die Daten von der Datenbank geholt werden, anschließend manipuliert werden und dann in den Cache gesteckt werden. Der Cache des Datenbankmanagementsystems wird also nicht die ganze Last abfangen können, wenn das Caching in phpBB komplett deaktiviert ist.
Auf phpBB.de kommen wir bisher sogar mit der Standard-Caching-Methode acm_file klar, bei dem der Cache auf dem Dateisystem liegt. Aber auch für acm_file gibt es einige Verbesserungen in 3.0.6.

Webserver
Keine Ahnung welchen Webserver ihr verwendet. Wenn vorhersehbar ist, dass viele verschiedene Benutzer die Seite stürmen werden: Keep-Alive abschalten. Das kann man dann natürlich auch noch weiter treiben, indem man z.B. für Grafikdateien einen eigenen Webserver einrichtet oder sogar Systeme wie Amazon S3 verwendet um die Bandbreitenlast verursacht durch Zugriffe auf statische Inhalte zu verteilen.


Gruß,
bantu.
Powered by Coffee
Antworten

Zurück zu „[3.0.x] Administration, Benutzung und Betrieb“