Serverfestplatte Voll ohne ersichtlichen Grund
Ich bin nicht sonderlich affin in Bezug auf Server Wartung. Ich wäre für verständlich und einfache Erklärungen sehr dankbar. Bin natürlich jederzeit bereit, mein Kopf mit neuem Wissen zu füllen.
Hallo,
ich habe gerade ein sehr merkwürdiges Phänomen. Ich habe hier eine Linux (Centos) Server, der einen 130GB Festplatte hat. Normalerweise ist das System zu 87% voll. Sprich eine Mysql DB 70GB, ein Solr 36GB und ein Artifactory 6GB laufen auf dem System. Dann sind über alle anderen Ordner noch ca 6-8GB belegt. Wer nachgerechnet hat, es bleiben noch 10 GB über. Das ist jetzt nicht sonderlich viel, aber es reicht. Die DB wächst nicht großartig und für den Solr und das Artifactory reicht der Platz auch noch. Jetzt auf einmal ohne ersichtlichen Grund wir es jedoch immer weniger. Ich habe also weil ich keine Ahnung habe wie es besser geht, auf jeden Ordner unter "/" ein du -sh Ordnernamen gemacht. Alles aufaddiert und es sollte wie oben schon erwähnt 10GB frei sein, da alle Ordner aufaddiert 120GB ergeben. Trotzdem ist wenn ich ein df ausführe nur noch 200MB frei. Ich habe jetzt schon ein paar Sachen verschoben aus den User Ordnern um mir etwas Luf zu verschaffen, aber das hält evtl. noch zwei Tage und ich bin mit meinem Latein am Ende.
Im ersten Anlauf habe ich vermutet das es das Mysql Slow query log ist, kann aber ausgeschlossen werden da der Ordner zum einen seit Monaten nicht wächst und das Log gar nicht aktiv ist. Solr log ist das selbe spiel, wobei das regelmäßig über einen Cron Job geleert wird.
Die Swap Partition ist übrigens 1 GB und zu zwei drittel in Nutzung. 15GB Speicher sind im Server verbaut, evtl. hilft das ja.
Mfg
Maveric
Hallo,
ich habe gerade ein sehr merkwürdiges Phänomen. Ich habe hier eine Linux (Centos) Server, der einen 130GB Festplatte hat. Normalerweise ist das System zu 87% voll. Sprich eine Mysql DB 70GB, ein Solr 36GB und ein Artifactory 6GB laufen auf dem System. Dann sind über alle anderen Ordner noch ca 6-8GB belegt. Wer nachgerechnet hat, es bleiben noch 10 GB über. Das ist jetzt nicht sonderlich viel, aber es reicht. Die DB wächst nicht großartig und für den Solr und das Artifactory reicht der Platz auch noch. Jetzt auf einmal ohne ersichtlichen Grund wir es jedoch immer weniger. Ich habe also weil ich keine Ahnung habe wie es besser geht, auf jeden Ordner unter "/" ein du -sh Ordnernamen gemacht. Alles aufaddiert und es sollte wie oben schon erwähnt 10GB frei sein, da alle Ordner aufaddiert 120GB ergeben. Trotzdem ist wenn ich ein df ausführe nur noch 200MB frei. Ich habe jetzt schon ein paar Sachen verschoben aus den User Ordnern um mir etwas Luf zu verschaffen, aber das hält evtl. noch zwei Tage und ich bin mit meinem Latein am Ende.
Im ersten Anlauf habe ich vermutet das es das Mysql Slow query log ist, kann aber ausgeschlossen werden da der Ordner zum einen seit Monaten nicht wächst und das Log gar nicht aktiv ist. Solr log ist das selbe spiel, wobei das regelmäßig über einen Cron Job geleert wird.
Die Swap Partition ist übrigens 1 GB und zu zwei drittel in Nutzung. 15GB Speicher sind im Server verbaut, evtl. hilft das ja.
Mfg
Maveric
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 191467
Url: https://administrator.de/contentid/191467
Ausgedruckt am: 26.11.2024 um 12:11 Uhr
21 Kommentare
Neuester Kommentar
Moin.
Vielleicht liefert jdiskreport (als root ausführen) schnell Aufschluss http://www.jgoodies.com/freeware/jdiskreport/ . Setzt java RE voraus.
Vielleicht liefert jdiskreport (als root ausführen) schnell Aufschluss http://www.jgoodies.com/freeware/jdiskreport/ . Setzt java RE voraus.
Hallo Maveric,
also wir fangen mal ganz lansam an und schwenken dann auf die EDV, das ist bei nicht so Technik affinen
Personen besser.
Du hast ein leeres Blatt Papier (Festplatte) und nun nimmst Du ein Lineal und unterteilst das Blatt in 20 Linien mit einem gleichmäßigen Abstand (Formatieren)! Anschließend schreibst Du in die erste Zeile:
"Dies ist ein nicht mit Chlor gebleichtes Blatt Papier in der DIN A4 Größe mit 20 Linien.
Dann ist doch klar das das Blatt eigentlich zwanzig Linien hat, aber da Du nun eine benutzt hast kannst Du auch nur noch in die 19 freien Zeilen was reinschreiben!!!!!!
So nun zu Deiner Festplatte! Du sagst Du benutzt Linux, gut und schön aber wichtiger wäre es zu wissen welche Partitionen Du wie formatiert hast. Denn das für das Formatieren auch Platz bei verbraucht wird haben wir ja nun bei dem Blatt Papier bereits heraus gefunden!
Gruß
Dobby
also wir fangen mal ganz lansam an und schwenken dann auf die EDV, das ist bei nicht so Technik affinen
Personen besser.
Du hast ein leeres Blatt Papier (Festplatte) und nun nimmst Du ein Lineal und unterteilst das Blatt in 20 Linien mit einem gleichmäßigen Abstand (Formatieren)! Anschließend schreibst Du in die erste Zeile:
"Dies ist ein nicht mit Chlor gebleichtes Blatt Papier in der DIN A4 Größe mit 20 Linien.
Dann ist doch klar das das Blatt eigentlich zwanzig Linien hat, aber da Du nun eine benutzt hast kannst Du auch nur noch in die 19 freien Zeilen was reinschreiben!!!!!!
So nun zu Deiner Festplatte! Du sagst Du benutzt Linux, gut und schön aber wichtiger wäre es zu wissen welche Partitionen Du wie formatiert hast. Denn das für das Formatieren auch Platz bei verbraucht wird haben wir ja nun bei dem Blatt Papier bereits heraus gefunden!
Gruß
Dobby
Hallo D.o.b.b.y,
Warum heute so zurückhaltend mit deinen Aufsätzen
@Maveric
was sagt ein df -h oder ein df -m aus? Was das bedeutet? Schaust du hier http://de.wikibooks.org/wiki/Linux-Kompendium:_df nach. (-h = für Menschen lesbar, -m = Angaben in Megabyte). Und gerade vergessen. Im Link ganz unten ist ein beispiel wie du mit einem als root user dir anzeigen lassen kannst wieviel Platz wo verschwendet wurde (die ersten 10).
Gruß,
Peter
Zitat von @108012:
"Dies ist ein nicht mit Chlor gebleichtes Blatt Papier in der DIN A4 Größe mit 20 Linien.
"Dies ist ein nicht mit Chlor gebleichtes Blatt Papier in der DIN A4 Größe mit 20 Linien.
Du auch nur noch in die 19 freien Zeilen was reinschreiben!!!!!!
Ääääähhhhh! Falsch. 21 leere Zeilen bei deinen 20 LinienWarum heute so zurückhaltend mit deinen Aufsätzen
@Maveric
was sagt ein df -h oder ein df -m aus? Was das bedeutet? Schaust du hier http://de.wikibooks.org/wiki/Linux-Kompendium:_df nach. (-h = für Menschen lesbar, -m = Angaben in Megabyte). Und gerade vergessen. Im Link ganz unten ist ein beispiel wie du mit einem
du -s /* | sort -rn | head -n 10
Gruß,
Peter
Moin
ein df -vh wäre sehr hilfreich gewesen.
meine kristallkugel sagt aber trotzdem /var oder /tmp ist Dir vollgelaufen.
Und: Das System reserviert sich Platz für den root, damit, wenn die Platte mal volläuft (alles auf 100% Belegung), trotzdem noch ein klein bischen Platz ist, damit Dein System nicht abkackt. Da dürfen dann halt nur noch Prozesse, die root-rechte haben draufschreiben, alle andere sind nicht wichtig genug.
Aber irgendwann ist da auch die Kacke am dampfen, also solltest Du schleunigst Platz machen, wenn euch euer Produktivsystem nicht abschmieren soll.
10G sind zwar relativ viel, aber wenn ein wildlaufender Prozeß euch /var/spool /var/log oder /tmp vollseiert, ist der Platz inenrhalb von Minuten aufgebraucht und das System steht.
lks
ein df -vh wäre sehr hilfreich gewesen.
meine kristallkugel sagt aber trotzdem /var oder /tmp ist Dir vollgelaufen.
Und: Das System reserviert sich Platz für den root, damit, wenn die Platte mal volläuft (alles auf 100% Belegung), trotzdem noch ein klein bischen Platz ist, damit Dein System nicht abkackt. Da dürfen dann halt nur noch Prozesse, die root-rechte haben draufschreiben, alle andere sind nicht wichtig genug.
Aber irgendwann ist da auch die Kacke am dampfen, also solltest Du schleunigst Platz machen, wenn euch euer Produktivsystem nicht abschmieren soll.
10G sind zwar relativ viel, aber wenn ein wildlaufender Prozeß euch /var/spool /var/log oder /tmp vollseiert, ist der Platz inenrhalb von Minuten aufgebraucht und das System steht.
lks
Böser Fehler.
Man sollte sinnvollerweise var und tmp und ggf noch Daten in getrennte Partitionen packen, um problemen aus dem weg zu gehen, wenn mal ein wildgewordener Prozess ein Filesystem vollmüllt.
Natürlich kann man auch alles in ein Filesetem packen, aber dann muß man sich bewußt sein, daß da ggf Notfallmaßnahmen ergriffen werden müssen.
Aber das sind Diskussionen deren für und wieder schon an anderer Stelle noch nicht abschließend ausdiskutiert wurde.
du -s /* | sort -rn | head -n 10, habe ich jetzt noch nicht gemacht, weil ich gerne wüsste was passiert wenn ich unter /mnt
noch von extern gemountete Laufwerke haben. Rechnet er sich dann "kaputt" oder ignoriert du gemountete Verzeichnisse?
noch von extern gemountete Laufwerke haben. Rechnet er sich dann "kaputt" oder ignoriert du gemountete Verzeichnisse?
Nur wenn du es ihm sagts.
Mach doch stattdessen einfach:
ls -d /* | grep -v /mnt | xargs du -s | sort -rn | head -n 10
lks
PS: Wenn Du nicht "server-affin" bist, hol Dir schleunigst jemanden, der sich damit auskennt, bevor Dir das Ding um die Ohren fliegt.
Zitat von @Maveric:
Ich habe leider vor einer Woche genau das was du beschrieben hast gehabt. Ich habe
mich schon gewundert warum das System nicht früher den Geist aufgegeben hat, weil es gut 20 Std schon "Voll" war
bis es dann letztendlich stehen geblieben ist und eine Menge mit sich gerissen hat.
Ich habe leider vor einer Woche genau das was du beschrieben hast gehabt. Ich habe
mich schon gewundert warum das System nicht früher den Geist aufgegeben hat, weil es gut 20 Std schon "Voll" war
bis es dann letztendlich stehen geblieben ist und eine Menge mit sich gerissen hat.
Wenn das Sytsme meldet Filesystem voll, ist es dringend angeraten, Abhilfe zu schaffen, beovr etwas schlimmeres passiert. Also: Wenn das ein wichtiges Produktivsystem ist, hol Dir einen kompetenten Menschen, der das geradebiegt. Und heutzutage ist Plattenplatz billig. Jedenfalls deutlich billiger als eine Stunde vergeudete zeit eines Mitarbieters, geschweige denn von einem ganzen Betrieb.
Dort war das Problem, das ein Cron Job amok
gelaufen ist und wärend ein Mountpunkt nicht erreichbar war.
Damit wurden die Daten Lokal abgelegt.
gelaufen ist und wärend ein Mountpunkt nicht erreichbar war.
Damit wurden die Daten Lokal abgelegt.
Deswegen hat jede bessere Programmier udn Skriptsprache die if-Anweisung drin, mit der man bestimmte Bedingungen abfragen kann, z.B. ob überhaupt an einem Mountpoint ein device üebrhaupt vorhanden ist. hau dem Cronjobprogrammierer mal auf die Finger.
Übrigens: Laß mich raten - Ihr mach Eure Datensicherung auf diese Art auf USB-Festplatten?
/tmp sind 200MB /var ist
71GB, davon 70 die DB.
71GB, davon 70 die DB.
Nachdem Du nur ein einziges Filesystem hast kann es jedes beliebige Verzeichnis sein, das den Fehler verursacht. Du könntest jetzt regelmäßig mit du die verzeichnisbelegung nachschauen und dann den Änderungen nachgehen. Oder Du sorgst erstmal für mehr Platz, indem Du da noch weitere (oder größere) Festplatten reinhaust udn damit Dir erstmal Luft verschaffst.
lks
Zitat von @Maveric:
Hier mal die Ausgabe deines Statements:
72056108 /var
47208976 /usr
2424184 /home
314300 /lib
275336 /opt
172956 /tmp
97544 /etc
32996 /boot
32364 /sbin
20316 /lib64
Hier mal die Ausgabe deines Statements:
72056108 /var
47208976 /usr
2424184 /home
314300 /lib
275336 /opt
172956 /tmp
97544 /etc
32996 /boot
32364 /sbin
20316 /lib64
das machst Du noch ein oder zweimal im Abstand von einer halbe Stunde und dann siehst Du, wo es noch weiter volläuft (vermutlich /var oder /usr) dort suchst Du dann genauer. du könntest Dir aber auch direkt /var und die unterverzeichnisse davon anscheuen, ob da auffälligkeiten sind.
Nachtrag: Du könntest mit iotop mal schauen, ob da besonders auffällige Prozese sind und dementsprechend schauen, ob die irgendwas vollmüllen.
lks
Du hast 130 GB. Das sind etwas weniger als 121 GiBi. Deine Werte zusammenaddiert lassen auf den ersten Blick also die Vermutung zu, dass wirklich nur 200 MB frei sind, Du also vor vollendeten Tatsachen stehst: die Platte ist voll. Klon sie doch bitte auf eine neue. Willst Du nämlich wirklich aufräumen, dann musst Du schon vollständig etwas davon verstehen, was einsparbar ist und was nicht. Allenfalls hätte jdiskreport für Übersicht sorgen können...
Hallo,
Neu eine größere Festplatte (unter 100 EUR) lösst dein problem sowie dir fachwissen einzukaufen was aber bei auch noch nicht mal in betracht gezogen werden darf.
Gruß,
Peter
Neu eine größere Festplatte (unter 100 EUR) lösst dein problem sowie dir fachwissen einzukaufen was aber bei auch noch nicht mal in betracht gezogen werden darf.
das man anscheinend Dateien löschen kann
Ja, das geht auch bei Linux:-9, diese aber vom System auf freigegeben werden müssen
?!? Du meinst doch sicherlich nicht das diese Dateien welche gelöscht werden sollen noch durch andere Benutzer in Benutzung sind?man findet sie jetzt nicht mehr aber der Platz ist noch belegt.
Das gibt es in jedem OS welches Links erlaubt. Sogar Windows macht das so. Das ist kein Problem oder fehler sonden by Design und somit auch gewollt.Wenn jmd. einen Befehl weis womit ich sowas freigeben kann immer her damit.
Redest du hier wirklich von Dateien welche in Benutzung sind oder von Dateien wo auch Links existieren können welche auf diese Datei verweist?aber ich denke ich bin auf einem guten Weg.
Wie mans nimmt Wenns das war, dann mach doch Bitte noch ein Wie kann ich einen Beitrag als gelöst markieren? dran.Gruß,
Peter
Das schafft Dir sehr viel Platz:
#rm -rfv /
Aber Vorsicht mach vorher lieber ein Backup
lks
PS: Du solltest das mit der Platte und jemandem der sich damit auskennt wirklich in erwägugn ziehen.
Zitat von @Maveric:
Also bezog sich meine Frage darauf ob man solche Dateien, auf die keine Zeiger mehr existiert manuell freigegeben werden
können.
Also bezog sich meine Frage darauf ob man solche Dateien, auf die keine Zeiger mehr existiert manuell freigegeben werden
können.
Moin,
Du verwechselst da was.
Man kann Dateien löschen, aber solange noch "locks" drauf sind werden die nicht gelöscht/freigegeben, Wenn da keine "Zeiger" mehr drauf wären, würden die schon über den Jordan geschmissen.
Man muß also z.B.- mit lsof oder anderen tools nachschauen, welche Prozesse nock locks auf die Dateien haben. Wenn Du also Dateien löschst und der Platz nicht freigegeben wird, heißt das, daß Du Prozesse hast, die die Datei noch benutzen Solceh Eateien zu löschen ist i.d.R. keine gute Idee.
Die Holzhammer-methdoe ist, nach dem Löschen eine reboot zu machen. Dann sind alle Prozesse weg, die eine lock haben könnte und der Platz wird freigegeben.
lks
Zitat von @Maveric:
Sy, aber bis jetzt waren deine Kommentare sehr hilfreich, den hier hättest du dir getrost sparen können.
Sy, aber bis jetzt waren deine Kommentare sehr hilfreich, den hier hättest du dir getrost sparen können.
Wieso?
Du hast mir so eine Steilvorlage geliefert, da konnte ich nicht anders. Und da ich davon ausgegangen bin, daß Du zumindest weißt, was es macht, konnte es auch keine Schaden anrichten. Und daß ich jetzt jedesmal Ironietags dazumalen muß sollte in so einem Forum nicht notwendig sein.
lks
Zitat von @Maveric:
Die DB hat anstatt in das oben erwähnte
Slow log, welches ich schon gelöscht/geleert habe, in ein "altes" slow log geschrieben. Auf diese hat es keine
Zeiger mehr gegeben. Nur noch der Prozess konnte die Datei ansprechen, vermutlich weil es den von dir erwähnten lock darauf
hatte, schon bevor die Datei irgendwann mal gelöscht wurde. Nach dem Reboot schreibt der Prozess in das für ihn
vorgesehene Log, welches ich auch sehen kann.
Die DB hat anstatt in das oben erwähnte
Slow log, welches ich schon gelöscht/geleert habe, in ein "altes" slow log geschrieben. Auf diese hat es keine
Zeiger mehr gegeben. Nur noch der Prozess konnte die Datei ansprechen, vermutlich weil es den von dir erwähnten lock darauf
hatte, schon bevor die Datei irgendwann mal gelöscht wurde. Nach dem Reboot schreibt der Prozess in das für ihn
vorgesehene Log, welches ich auch sehen kann.
Das kann man i.d.R. auch einfacher haben, indem man die Logdatei, sofern man sie wirklich nicht mehr braucht mit
cat /dev/mull >logdatei
auf die Länge 0 zurechtstutzt. Das gibt den Platz sofort frei. (Achtung gefährlich!)
Funktioniert allerdings nur, wenn der Prozess die Datei nicht exklusiv zum schreiben geöffnet hat.
lks