Caching: Der vielleicht größte Hebel, um Server-Ressourcen zu sparen
Moin!
Seit knapp über einem Jahr betreuen wir eine Website mit durchschnittlich über 12.000 Besuchern pro Tag. Da wir das Projekt übernommen haben, haben wir zunächst die Website von Contao 4.9 auf 4.13 und zuletzt auf Contao 5.3 aktualisiert.
Doch mit dem Update auf 5.3 liefen wir in ein Problem, das wir so bisher nicht kannten: Die 150GB, die für das Projekt auf dem Server reserviert waren, wurden knapp. Das führte dazu, dass an einem Freitag Abend die Website offline ging.
Die IT konnte glücklicherweise schnell handeln, indem sie dem Server nochmal 100GB zusätzlich spendiert hat. Aber nach dieser Geschichte habe ich mich natürlich gefragt, wie wir den Ressourcen-Verbrauch langfristig senken können und einen Maßnahmen-Katalog erstellt.
Da die Website sowohl bei Besuchern wie Bots/Crawler gleichermaßen beliebt ist, haben wir damit begonnen, Bots wie zum Beispiel den Semrush Bot auszusperren. Wie gut das geklappt hat, sehen wir erst in ein paar Tagen/Wochen, da der Bot nur unregelmäßig (auf Befehl?) vorbeischaut.
Zusätzlich haben nun auch den Zugriff aus Ländern wie China und Japan unterbunden (Russland und Iran könnten folgen) und werden unter Umständen noch ein Rate-Limit für die zentrale Suchfunktion einführen. Aber erstmal warten wir die Ergebnisse ab.
Was bisher den größten Effekt hatte, war die Aktivierung des Contao Cache. Der Private-Cache steht aktuell auf 15 Minuten, während der Shared-Cache auf 3 Stunden steht. Das hat innerhalb eines Wochenendes direkt mal dazu geführt, dass das System nun 19GB weniger Speicher benötigt, Tendenz fallend.
Wenn du also nicht beliebig Server-Kapazitäten zur Verfügung hast, oder wenn du der Umwelt zuliebe Ressourcen schonen möchtest, dann ist die Aktivierung der Caches ein gewaltiger Hebel.
Erstma'
Dennis
PS: In der Contao Doku gibt es dafür einen eigenen Eintrag: HTTP Caching
PPS: Ich bin eigentlich kein Freund davon, jemanden auszusperren. Aber diese Zugriffe kosten das Gemeinnützige Unternehmen unverhältnismäßig viel Geld.