Fehler: Festplatten vom Server laufen voll, da das Cache Verzeichnis nicht geleert wird
Hallo,
wir sind vor kurzem von XT auf Shopware gewechselt. Wir wurden durch einen Programmierer begleitet.
Nun haben wir das Problem, dass das Cache Verzeichnis von Shopware überläuft und dies regelmäßig dazu führt, dass unsere Server abschmieren.
Der Cronjob zur Bereinigung des Caches ist aktiviert und wird auch ausgeführt, jedoch wird auf dem Server nichts gelöscht. Ein negatives Feedback oder einen Fehler erhalten wir von der Software ebenfalls nicht, sodass es mittlerweile wirklich schwierig wird mit der Software weiterzuarbeiten, da wir permanent offline sind und wir unsere ganzen Werbekampagnen deaktivieren mussten.
Der Provider sowohl als auch der Entwickler / Programmierer behaupten, dass es nicht an Ihnen liegen würde. Shopware konnte bisher auch nichts finden, sodass wir uns mal an éuch wenden wollten.
Was uns ebenfalls aufgefallen ist und direkt mit dem Problem im Zusammenhang stehen könnte:
Wenn man den Menupunkt Einstellungen - Caches / Performance - 2. Karteireiter Cache öffnet, dann erhält man nach kurzer Zeit einen Timeout mit einem Fehlerfenster mit dem Tab Title „0 - communication failure“ ohne Fehlermeldung.
Wir gehen ebenso davon aus, dass es möglicherweise ein Problem mit der Datei clear_cache.sh gibt. Diese können wir leider nicht in einem Original finden.
Ein Berechtigungsproblemschließen wir aus. Wir hatten testweise den Cache Ordner auf 777 gesetzt. Wenn wir den Cache Ordner löschen wird er selbstverständlich auf dem richtigen Pfad mit den Rechten 750 angelegt.
Falls ihr noch weitere Informationen benötigt, dann werde ich die euch selbstverständlich zukommen lassen. Wenn Jemand einen Tip hat wo ich die originale Datei clear_cache.sh herbekomme, dann wäre ich demjenigen ebenfalls sehr dankbar.
was wollt ihr denn mit dem clear_cache Script? Das Löschen des Caches sollte, wenn automatisiert, über den Standard Cronjob erfolgen.
Ich empfehle den Ordnerinhalt aus var/Cache einmal komplett manuell zu leeren. Dann den Cronjob aktivieren und einrichten, dass z.B. in der Nacht der httpCache gelöscht wird.
Da sind keine Probleme bekannt. Den Fehler im backend im Modul bekommt ihr einfach, da die Prüfung des Cache Ordners nicht erfolgen kann. Das liegt and der Größe und Performance
Wie groß generell der Ordner wird liegt daran, wie groß der Shop ist, Anzahl Artikel, Intervall der Aktualisierung und auch abhängig von Importen und Updates und deren Intervalle
den Cache Ordner haben wir bereits öfter von Hand gelöscht. Bislang musste uns der Provider schon hefen, da wir selbst nicht mehr in der Lage waren den Inhalt selber zu löschen (innerhalb von drei tagen 90GB!!!).
Wir sind davon ausgegangen, dass die Datei benötigt wird.Wenn nicht, dann löschen wir diese.
Der Cron ist aktiviert und wird über ein Cronjob auf dem Providerserver über HTTP Aufruf angestoßen. Es laufen alle Crons, selbst der http cache löschen cron, jedoch bleibt die Größe des Ordners in dem sich die Cache Dateien befinden identisch. Es scheint als würde nichts gelöscht.
Das ist aber zum Löschen per Konsole. Das geht auch, wenn du das ausführst. Auch müssen die Cronjobs korrekt per Konsole eingerichtet werden. Sonst können die gar nicht sauber laufen und rennen in Time Outs etc.
Der Cache soll ja gar nicht über drei Tage ansteigen sondern Minimum eigentlich alle 24h komplett gelöscht werden. Gerade per Konsolen Command muss das super schnell machbar sein. Da liegt sonst ein ganz anderes Problem vor.
Auch die Größe ist total unnormal. Oder habt ihr Millionen Artikel?
Ich kenne aber Konfiguration und Server nicht.
Sebastian
PS: Dateien die im Standard dabei sind sollte aber nie gelöscht werden :-)
Was können wir denn direkt an den Crons konfigurieren? Diese sind doch per default eingerichtet!?
Im Frontend Cache (http cache) stehen die Zeiten auf ein Tag, die der Cache max. aufbewahrt werden soll.
Im Menu Crons jedoch steht die Ausführung auf 2Min (zum Testen) und der Host Europe Cronjob läuft ebenfalls alle 2 Minuten.
Per Konsole war ich bislang noch nicht dran. Vergiss das mit der .sh. Ich dachte die Datei wird benötigt damit der Cron läuft. Mittlerweile ziehen wir alle Register, da wir uns ein wenig im Stich gelassen fühlen. Keiner von den drei Beteiligten (Provider, Programmierer, Hersteller) kann oder will uns weiterhelfen…
Wir haben derzeit ca. 4000 Artikel, jedoch recht viele Besucher aufgrund eines ziemlich hohen Werbebudget.
Die Dateien hatten wir nicht gelöscht, jedoch hatten wir ein Problem mit dem Cache Ordner und dieser musste komplett vom Provider entfernt werden. Dort liegt auch die .sh Datei drin.
Also die einzelnen Jobs müssen in shopware schon aktiviert werden. Einige besitzen auch Plugins die erst installiert werden müssen.
Beim httpCache Cronjob kannst du ja auch sehen ob er läuft und wann er zum nächsten mal ausgeführt wird.
Die Shopware Cronjobs sollten aber definitiv per Konsole angesteuert werden. Läuft ein Job in einen Fehler, kannst du das im backend bei den Cronjobs sehen oder per Mail oder log beim Hoster.
Wie geschrieben, so ein großer Cache kann überhaupt nicht sein. Das klingt schon fast, als würden da ganz viele alte Ordner etc. liegen
Ansonsten müsste ich da echt mal drauf gucken. Aber da ist ja was nicht in Ordnung… irgendwas ist da total falsch…
Die Crons sind alle aktiviert. Die notwendigen Plugins wie cron sind installiert und ebenfals aktiviert.
Wir sehen, dass er läuft, nur wird nichts gelöscht. Wir löschen derzeit per Hand…
Zur Zeit werden die Crons nicht per Konsole sondern http Aufruf (cronjob beim Hoster) gestartet… Wir haben nur einen Managed Server,sodass ich nicht weiß, ob dies ohne weiteres möglich ist
Das denken wir auch… Die Größe sollte sich eher im bereich 2-3GB bewegen.
Zur Zeit werden die Crons nicht per Konsole sondern http Aufruf (cronjob beim Hoster) gestartet… Wir haben nur einen Managed Server,sodass ich nicht weiß, ob dies ohne weiteres möglich ist
Evtl. lauft ihr in irgendwelche HTTP- oder PHP-Timeouts, so daß der Cron Job nicht sauber ausgeführt wird. Daher würde ich unbedingt empfehlen, den Cron Job per Kommandozeilen-PHP auszuführen.
Wir könnten versuchen die Crons über die Kommandozeile einzurichten. Da wir uns nicht wirklich damit auskennen: Wenn wir dies per Kommandozeile einrichten wollen, dann muss dies aber genauso auf dem Providerserver erfolgen, oder? Würde dies mit einem Managed Server überhaupt gehen? Und wie würde man das Ganze per Kommandozeile machen? Gibt es hier eine Anleitung für?
Wir könnten versuchen die Crons über die Kommandozeile einzurichten. Da wir uns nicht wirklich damit auskennen: Wenn wir dies per Kommandozeile einrichten wollen, dann muss dies aber genauso auf dem Providerserver erfolgen, oder? Würde dies mit einem Managed Server überhaupt gehen? Und wie würde man das Ganze per Kommandozeile machen? Gibt es hier eine Anleitung für?
Cron ist ein Standardtool Du findest im Netz massig Anleitungen die für Deine Bedürfnisse passen.
Wir haben das Problem nun mit Hilfe von einem vernünftigen Shopware Betruer ermitteln können. Fehler lag tatsächlich beim anderen Entwickler, nicht an Shopware und auch nicht am Hoster!!