CloudLinux weist jedem Webhosting-Konto ein gemeinsames Ressourcenkontingent (LVE) zu. Innerhalb dieses Kontingents laufen alle zum Konto gehörenden Prozesse: die PHP-Anfragen der Website, die Cron-Jobs, die über SSH oder das cPanel-Terminal ausgeführten Befehle sowie die Node.js- und Python-Anwendungen. Die für Ihr Paket geltenden Limits finden Sie in dem Artikel, der die Ressourcenlimits der Hosting-Pakete erläutert.
Was bedeutet das in der Praxis?
Cron-Aufgaben und SSH-Sitzungen nutzen dieselben Ressourcen wie die Website:
- CPU, Arbeitsspeicher, E/A: Wenn ein Cron-Job (beispielsweise ein Import, eine Bildgrößenanpassung oder eine Sicherung) die gesamte CPU- oder Festplattenkapazität des Kontos beansprucht, reagiert die Website in der Zwischenzeit langsamer.
- Gleichzeitige Verbindungen (EP): Jede laufende Cron-Aufgabe und jede SSH-Sitzung belegt einen Platz im Kontingent für gleichzeitige Verbindungen. Wenn viele Cron-Aufgaben gleichzeitig ausgeführt werden, steht weniger Platz für Besucher zur Verfügung, und es kann zu einem Fehler 508 kommen.
- Anzahl der Prozesse (NPROC): Sowohl die Prozesse der Cron-Aufgaben als auch die der über SSH gestarteten Programme werden auf das Prozesslimit des Kontos angerechnet.
Auch Prozesse, die mit dem Befehl „nice“ oder „ionice“ gestartet werden, bleiben im Rahmen des Kontos; diese Befehle stellen keine zusätzlichen Ressourcen bereit.
Häufige Probleme
- Sich überschneidende Cron-Aufgaben: Wenn eine Aufgabe, die minütlich ausgeführt wird, länger als eine Minute läuft, wird die nächste Instanz gestartet, noch bevor die vorherige beendet ist. Innerhalb weniger Minuten laufen mehrere Dutzend Instanzen gleichzeitig, wodurch das Konto seine Limits erreicht.
- Anspruchsvolle Aufgaben zu Spitzenzeiten: Ein umfangreicher Import- oder Sicherungsvorgang, der tagsüber ausgeführt wird, verlangsamt die Website genau dann, wenn die meisten Besucher darauf zugreifen.
- Der in WordPress integrierte Cron-Dienst – „
wp-cron.php“ – wird bei jedem Seitenaufruf gestartet, sodass die Hintergrundaufgaben parallel zu den Anfragen der Besucher ausgeführt werden.
Bewährte Vorgehensweisen
- Planen Sie rechenintensive Aufgaben für die Nacht ein, also für Zeiten mit geringem Datenverkehr. Die Einrichtung von Cron-Aufgaben wird in dem Artikel über die Erstellung von Cron-Jobs im cPanel beschrieben, das Zeitformat wird in dem Artikel zur crontab-Syntax erläutert.
- Führen Sie Aufgaben nicht unnötig häufig aus. Wenn eine Ausführung pro Stunde ausreicht, stellen Sie die Intervalle nicht auf jede Minute ein.
-
Verhindern Sie Überschneidungen. Der Befehl „
flock“ sorgt dafür, dass von einer Aufgabe jeweils nur eine Instanz gleichzeitig ausgeführt wird. Läuft die vorherige Instanz noch, wird die neue Instanz gar nicht erst gestartet:flock -n $HOME/.cron-import.lock php $HOME/scripts/import.php - Ersetzen Sie den WordPress-Cron durch einen echten Cron-Job; siehe: Wie ersetzt man den integrierten WordPress-Cron durch die geplanten Aufgaben in cPanel?
- Beenden Sie nicht genutzte SSH-Sitzungen und lassen Sie keine Programme im Hintergrund laufen.
- Teilen Sie umfangreiche Aufgaben in kleinere Schritte auf. Ein Import mit mehreren tausend Einträgen, der in kleineren Portionen nacheinander durchgeführt wird, belastet das Konto weniger.
Ob eine Cron-Aufgabe das Erreichen der Limits verursacht, können Sie auf der Seite „Ressourcenauslastung“ in cPanel überprüfen. Wenn die Fehler immer zur gleichen Zeit auftreten oder auf der Registerkarte „Snapshot“ der Befehl der Cron-Aufgabe angezeigt wird, ist diese Aufgabe der Verursacher. Siehe: Was bedeuten die Fehlerzähler (faults) auf der Seite „Ressourcenauslastung“?