PHP-Seite lastet Shared Webhosting aus

Eigentlich ist es etwas was einen freuen sollte: Plötzlich verirren sich 500 Benutzer gleichzeitig auf eine der eigenen Webseiten. Dies kam damals auch schon mal vor, als die entsprechende Webseite noch bei Strato lag. Zu dem Zeitpunkt war das außer bis auf etwas Performance-Einbußen kein Problem. Was ich allerdings vergessen habe zu berücksichtigen, als ich dem Support geschrieben habe: Damals bestand die Seite rein aus html-Dateien! Mittlerweile ist es aber ein eigenes Mini-CMS in PHP, welches ich selber geschrieben habe.

Laut Aussage von All-Inkl könnte dies daran liegen, dass zu viele gleichzeitige PHP-Prozesse liefen oder aber 150 gleichzeitige Verbindungen zum Server bestanden. Anscheinend ist dies das Limit für das Shared Hosting. Schade, denn wirklich viel haben die PHP-Skripte gar nicht zu tun, da ich ein Caching eingebaut habe und die html-Dateien sowieso schon als Dateien in einem tmp-Ordner liegen. Der Inhalt der tmp-Dateien muss also nur noch ausgegeben werden, sofern die entsprechende URL aufgerufen wird. Da die MySQL-Datenbank hierfür nicht beansprucht wird, dürfte die Last ähnlich wie bei einem Flat-File-System wie Kirby oder Grav sein. Vermutlich ist die eigene Matomo-Installation hier auch nicht förderlich, da diese ja auch in PHP läuft und dadurch wiederum noch mehr PHP-Skripte ausgeführt werden.

Man könnte jetzt sagen: Dann zieh doch auf einen eigenen Server. Aber das lohnt sich bisher nicht wirklich, denn einen solchen Besucher-Peak gab es bisher, zumindest seit dem die Besucherzahlen ermittelt werden, erst zweimal.

 

Mögliche Lösung

Die einzige Möglichkeit die mir einfällt, auch wenn dies etwas extrem ist, ist der Rückgang auf eine komplett undynamische Variante, wo einfach nur html-Dateien ausgeliefert werden. Sofern der Webserver nur Dateien ausliefert, sollte dies vermutlich die Problematik soweit eingrenzen, dass es maximal etwas langsamer werden sollte bei solch einem Besucheransturm.

Da dies im Fall der betroffenen Webseite nur einen Themenbereich mit etwa 30 Unterseiten betrifft die für den Traffic sorgen, werde ich denke ich nur die Seiten direkt abspeichern. Bei einem Test hat sich ergeben, dass die Seiten nciht mal die Endung .html oder .htm benötigen. Deshalb würde ich diese dann z. B. wie folgt exportieren: /thema1/unterseite1 – ganz ohne Dateiendung, sondern so wie sie sonst auch durch das PHP-Skript erreichbar wären.

Hierfür ist nur zwingend eine Ausnahmeregel in der .htaccess-Datei vor dem Redirect an die index.php nötig, welche dafür sorgt, dass zuerst geprüft wird ob sich unter der aufgerufenen URL eine Datei finden lässt:

Diese Regel sollte im Normalfall bereits gesetzt sein, da ohne diese der Aufruf von Bildern etc. sonst wohl gar nicht mehr funktioneiren würde.

 

Fazit

Dies ist zwar eine eher „unbefriedigende“ Misch-Masch-Lösung, aber vermutlich werde ich dies zumindest bei der nächsten Auslastung so mal versuchen in den Griff zu bekommen. Leider scheint das Shared Hosting für einen solchen Besucherstrom definitiv nicht geeignet zu sein, insbesondere nicht in Verbindung mit einem CMS bzw. allgemein PHP-Skripten.

 

Tobias Langner

Ich arbeite seit mehreren Jahren als IT-Administrator, bin ausgebildeter Fachinformatiker für Systemintegration und Studium-„Pausierer“ an der FernUni Hagen

Achtung: Für die Richtigkeit der zur Verfügung gestellten Informationen, Skripte, etc. übernehme ich keine Gewähr. Deren Nutzung geschieht ausdrücklich auf eigene Gefahr!

Schreibe einen Kommentar