Nutzer:innen können keine reqifz Dateien mehr uploaden.

Analyse des aktuellen Speicherbedarfs mit Linux, Docker und Kubernetes Kommandos.

Problem:

Mit der Zeit sammeln sich Daten an, wenn in Ihrem Unternehmen der ReqIF Manager verwendet oder Updates der requisis Toolbox durchgeführt wurden. Wenn auf dem verwendeten System kein oder zu wenig freier Speicherplatz für neue Importe ist erhalten Ihre Nutzer:innen beim Upload folgenden Fehler:

DockerSpeicherVoll

In Docker CLI kann folgender Fehler bei einem Update auftreten wenn kein oder zu wenig freier Speicherplatz vorhanden ist:

INTERNAL ERROR: cannot create temporary directory!

Bevor Sie mit der Analyse beginnen kann es hilfreich sein den Wartungsmodus der requisis_Toolbox einzuschalten. Wie dies funktioniert lesen Sie in diesem Artikel.

Analyse bei Docker:

Beginnen Sie zuerst mit einer allgemeinen Analyse um sicher zu sein, dass die gestiegene Speichernutzung nicht durch andere Applikationen, temporäre Dateien, Backups oder das Betriebssystem erfolgt ist. Dazu kann unter Linux das Kommando df -h verwendet werden.

Konnte dies ausgeschlossen werden verschaffen Sie sich einen Überblick über die aktuelle Speicherauslastung der Docker Umgebung. Dazu verwenden Sie das Kommando docker system df -v Es listet alle vorhanden Images, Container und Volumes auf und zeigt in der Spalte Size den beanspruchten Speicherplatz an. Weitere Informationen zum df Kommando erhalten Sie in den Docker.docs.

Analyse bei Kubernetes:

Wenn Sie Kubernetes nutzen können Sie das Kommando kubectl top pods oder kubectl top nodes verwenden um den Ressourcennutzung (CPU und Speicher) der Pods und Knoten zu überprüfen. Weitere Informationen zum top Kommando erhalten Sie hier in der kubernetes Doku.
Den aktuellen Speicherverbrauch innerhalb eines Container können Sie mit kubectl exec -it <PodName> -n <NameSpace> -- df -h ausgeben lassen. Weitere Informationen zum exec Kommando finden Sie hier in der Kubernetes Doku.

Aufräumen bei Docker:

Am besten räumen Sie in Docker gezielt auf mit den Kommandos docker container/image/volume/network rm <ID/Name> auf. Nur so können Sie relativ sicher sein evtl. benötigte Daten nicht aus Versehen zu löschen. Die rm Kommandos erlauben nicht das Löschen von aktuell verwendeten Ressourcen. So haben Sie die beste Kontrolle darüber was erhalten bleibt.

Es gibt die Möglichkeit alle aktuell hängenden und nicht von Docker verwendeten (gestoppte) Container, Images. Volumes, etc. zu entfernen. Dazu kann das Kommando docker system prune -a verwendet werden. 

Die Verwendung von docker system prune -a wird nicht empfohlen. Dies kann dazu führen, dass Daten gelöscht werden, die nicht gelöscht werden sollten.

Nutzen Sie prune nur in Verbindung mit einem Filter: docker image prune --filter "until=24h" . Um nur Images die älter als 24 Stunden sind beim Löschen zu berücksichtigen. Weitere Informationen zum prune Kommando erhalten Sie in den Docker.docs.

Aufräumen bei Kubernetes:

Wenn Sie Kubernetes verwenden müssen Sie die zuvor Analysierten Pods oder Nodes etc. mit mehreren kubectl delete Kommandos aufräumen. Dies läßt sich am besten per Skript lösen. Alle Informantion zum delete Kommando finden Sie hier in der kubernetes Doku.

Speicherplatz Warnung aktivieren:

Die requisis_Toolbox bietet die Möglichkeit den verwendeten Speicherplatz zu überwachen. Sollte es zu einer von Ihnen definierten Speicherauslastung kommen können Sie Warnungen per E-Mail erhalten oder im GUI der requisis_Toolbox anzeigen lassen.

Sie finden die dazu nötigen Optionen in der parameters.yml Datei im Unterordner store/toolb/config.


Eine Beschreibung der Parameter finden Sie im Adminhandbuch im Kaptel 4.3.8 Configure Diskspace Warning.