Page 1 of 1

df wird nicht weniger und Platte immer voller

Posted: 2005-07-13 19:42
by truenoir
Hallo,

seit einigen Tagen habe ich folgendes Problem mit meinem rootie:

Ich lasse mir jede nacht per logdigest die logs und die Server-Daten zuschicken, unter anderem auch "df -h" und in jedem Protokoll sind nahezu 100 MB mehr auf der Platte belegt (bei df). Inzwischen bin ich bei 9.3GiBi angekommen.

Dachte ich mir doch, na dann kopiere ein par rotierte Logs nach Hause und lösch die auf dem Server.
Nun habe ich ca. 230 MB an gz-ten Logs herunter geladen und auf dem Server gelöscht. Aber "df -h" zeigt (auch nach Stunden) trotzdem nicht weniger an.

Nun gibts die zwei Fragen:
1) Wie kann ich herausbekommen, wo da ständig ~100MB herkommen, ohne regelmäßig "du /" auszuführen (habe per IPTables mal nur HTTP/HTTPS/SSH freigegeben und den Traffic ein par Tage lang beobachtet (in und out getrennt). Aber da kommen die 100MBs nicht her).
2) Warum kann ich 200 MB löschen, ohe das df von 9.3G auf 9.1G wechselt?

System ist SuSE 7.2 Kernel 2.4.25-040218 (jaja, ist ziemlich alt)

Gruß,
Marcus

Re: df wird nicht weniger und Platte immer voller

Posted: 2005-07-13 23:52
by mausgreck
TrueNoir wrote: 2) Warum kann ich 200 MB löschen, ohe das df von 9.3G auf 9.1G wechselt?
Weil unter UNIX geunlink()te Files erst verschwinden, wenn keiner mehr darauf zugreift. Das ist übrigens eine nette Methode, private Files zu erstellen.

HTH

Re: df wird nicht weniger und Platte immer voller

Posted: 2005-07-14 01:45
by thorsten
lsof zeigt dir u.a. offene Dateien an.
grep mal nach denen, evtl. wirst du fündig

Re: df wird nicht weniger und Platte immer voller

Posted: 2005-07-14 10:44
by truenoir
Thorsten wrote:lsof zeigt dir u.a. offene Dateien an.
grep mal nach denen, evtl. wirst du fündig
also ich hab mal "lsof | grep gz" gemacht, aber die von mir gelöschten Log-archive sind da nicht zu finden.
df zeigt inzwischen 9.4G an.

Re: df wird nicht weniger und Platte immer voller

Posted: 2005-07-14 11:56
by Joe User
Boardsuche: MySQL binlog

Re: df wird nicht weniger und Platte immer voller

Posted: 2005-07-14 12:17
by truenoir
Joe User wrote:Boardsuche: MySQL binlog
Yup, an die Bin-Logs hab ich auch schon gedacht. Die sinds aber auch nicht, da gibts immernoch nur dir *.001 mit knapp 70MB, da ich die extrem log-intensiven Datenbanken (inkl. confixx) per --binlog-ignore-db=DB vom Logging ausschließe.

Re: df wird nicht weniger und Platte immer voller

Posted: 2005-07-14 12:29
by Joe User

Code: Select all

ps auxf

Re: df wird nicht weniger und Platte immer voller

Posted: 2005-07-14 12:32
by st3fan
schau mal nach ...

Code: Select all

 lsof -n | grep deleted

Re: df wird nicht weniger und Platte immer voller

Posted: 2005-07-15 10:19
by truenoir
Joe User wrote:

Code: Select all

ps auxf
Ergebnis:

Code: Select all

USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   436   64 ?        S    Jun27   0:30 init [3]
root         2  0.0  0.0     0    0 ?        SW   Jun27   0:00 [keventd]
root         3  0.0  0.0     0    0 ?        SWN  Jun27   0:00 [ksoftirqd_CPU0]
root         4  0.0  0.0     0    0 ?        SW   Jun27   1:57 [kswapd]
root         5  0.0  0.0     0    0 ?        SW   Jun27   0:00 [bdflush]
root         6  0.0  0.0     0    0 ?        SW   Jun27   1:42 [kupdated]
root         7  0.0  0.0     0    0 ?        SW   Jun27   0:11 [pagebufd]
root         8  0.0  0.0     0    0 ?        SW   Jun27   0:00 [xfslogd/0]
root         9  0.0  0.0     0    0 ?        SW   Jun27   0:00 [xfsdatad/0]
root        11  0.0  0.0     0    0 ?        SW   Jun27   4:06 [kjournald]
root        38  0.0  0.0     0    0 ?        SW   Jun27   0:04 [kjournald]
root       286  0.0  0.1  1300  452 ?        S    Jun27   0:00 /sbin/dhcpcd -t 999999 eth0
root       320  0.0  0.2  2236  624 ?        S    Jun27   0:03 /usr/sbin/sshd
root     14162  0.0  0.6  2948 1620 ?        S    10:06   0:00  _ /usr/sbin/sshd
web1     14219  0.0  0.6  2668 1532 pts/3    S    10:06   0:00      _ -bash
root     15219  0.0  0.4  2140 1176 pts/3    S    10:08   0:00          _ su -
root     15246  0.0  0.6  2660 1536 pts/3    S    10:08   0:00              _ -bash
root     17011  0.0  0.6  2496 1524 pts/3    R    10:11   0:00                  _ ps auxf
root       332  0.0  0.2  1364  584 ?        S    Jun27   0:17 /sbin/syslogd
root       336  0.0  0.1  2028  436 ?        S    Jun27   0:00 /sbin/klogd -c 1
at         345  0.0  0.2  1432  524 ?        S    Jun27   0:00 /usr/sbin/atd
root       447  0.0  0.3  3240  936 ?        S    Jun27   1:35 sendmail: accepting connections
root       459  0.0  0.4  6056 1188 ?        S    Jun27   0:53 /usr/bin/perl /usr/libexec/webmin/miniserv.pl /etc/webmin/miniserv.conf
root       503  0.0  1.5  3952 3944 ?        SL   Jun27   1:56 /usr/sbin/xntpd
root       514  0.0  1.5  3952 3944 ?        SL   Jun27   0:18  _ /usr/sbin/xntpd
root       516  0.0  1.5  3952 3944 ?        SL   Jun27   2:03  |   _ /usr/sbin/xntpd
root       519  0.0  0.4  4080 1072 ?        S    Jun27   0:00  _ /usr/sbin/xntpd
root       517  0.0  0.2  1452  596 ?        S    Jun27   0:20 /usr/sbin/cron
root     10449  0.0  0.2  1456  520 ?        S    Jul14   0:00  _ /USR/SBIN/CRON
root     10459  0.0  0.0     0    0 ?        Z    Jul14   0:00  |   _ [sh <defunct>]
smmsp    10477  0.0  0.2  3156  684 ?        S    Jul14   0:00  |   _ /usr/sbin/sendmail -FCronDaemon -odi -oem root
root     16650  0.0  0.0     0    0 ?        Z    10:11   0:00  _ [cron <defunct>]
root     16651  0.0  0.0     0    0 ?        Z    10:11   0:00  _ [cron <defunct>]
root     16652  0.0  0.0     0    0 ?        Z    10:11   0:00  _ [cron <defunct>]
root     16653  0.0  0.0     0    0 ?        Z    10:11   0:00  _ [cron <defunct>]
root     16654  0.0  0.0     0    0 ?        Z    10:11   0:00  _ [cron <defunct>]
root     16662  0.0  0.0     0    0 ?        Z    10:11   0:00  _ [cron <defunct>]
root       535  0.3  0.2 11768  688 ?        S    Jun27  91:36 /usr/sbin/nscd
root       539  0.0  0.2 11768  688 ?        S    Jun27   0:20  _ /usr/sbin/nscd
root       540  0.3  0.2 11768  688 ?        S    Jun27  90:56      _ /usr/sbin/nscd
root       541  0.1  0.2 11768  688 ?        S    Jun27  41:46      _ /usr/sbin/nscd
root       542  0.1  0.2 11768  688 ?        S    Jun27  42:02      _ /usr/sbin/nscd
root       543  0.1  0.2 11768  688 ?        S    Jun27  42:09      _ /usr/sbin/nscd
root       544  0.1  0.2 11768  688 ?        S    Jun27  43:17      _ /usr/sbin/nscd
root       559  0.0  0.1  1312  484 ?        S    Jun27   0:00 /usr/sbin/inetd
root       671  0.0  0.1  1272  428 tty1     S    Jun27   0:00 /sbin/mingetty --noclear tty1
root       672  0.0  0.1  1272  428 tty2     S    Jun27   0:00 /sbin/mingetty tty2
root       673  0.0  0.1  1272  428 tty3     S    Jun27   0:00 /sbin/mingetty tty3
root       674  0.0  0.1  1272  428 tty4     S    Jun27   0:00 /sbin/mingetty tty4
root       675  0.0  0.1  1272  428 tty5     S    Jun27   0:00 /sbin/mingetty tty5
root       676  0.0  0.1  1272  428 tty6     S    Jun27   0:00 /sbin/mingetty tty6
root      5722  0.0  0.2  1624  732 ?        S    Jun27   0:02 /usr/local/sbin/smartd -l local3
root     30822  0.0  0.2  2348  708 ?        S    Jun28   0:15 /usr/sbin/nmbd -D
root     30826  0.0  0.2  3316  540 ?        S    Jun28   0:00 /usr/sbin/smbd -D
root       945  0.0  1.4  6120 3632 ?        S    Jun28   7:57  _ /usr/sbin/smbd -D
root       964  0.0  0.1  2192  480 ?        S    Jun28   0:00 smbmount //127.0.0.1/smbwww /smbwww -o rw username wwwrun
spamd    23629  0.0  1.3 20340 3308 ?        S    Jun29   0:05 /usr/local/bin/perl -T -w /usr/bin/spamd -x -u spamd -H /var/spool/spamassassin -d
root     19231  0.0  0.3  2416  956 ?        S    Jul14   0:00 /bin/sh /usr/local/bin/mysqld_safe --user=mysql --pid-file=/var/lib/mysql/mysqld.pid --socket=/var/lib/mysql/mysql.sock --binlog-ignore-db=confixx --binlog-ignore-db=access_log --binlog-ignore-db=access --log-slow-queries=/
mysql    19275  0.0  3.4 22776 8596 ?        S    Jul14   0:03  _ /usr/local/libexec/mysqld --basedir=/usr/local --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/mysqld.pid --skip-locking --socket=/var/lib/mysql/mysql.sock --binlog-ignore-db=confixx --binlog-ignore-db=a
mysql    19277  0.0  3.4 22776 8596 ?        S    Jul14   0:03      _ /usr/local/libexec/mysqld --basedir=/usr/local --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/mysqld.pid --skip-locking --socket=/var/lib/mysql/mysql.sock --binlog-ignore-db=confixx --binlog-ignore-
mysql    19278  0.8  3.4 22776 8596 ?        S    Jul14  12:35          _ /usr/local/libexec/mysqld --basedir=/usr/local --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/mysqld.pid --skip-locking --socket=/var/lib/mysql/mysql.sock --binlog-ignore-db=confixx --binlog-ign
mysql    19596  0.0  3.4 22776 8596 ?        S    Jul14   0:02          _ /usr/local/libexec/mysqld --basedir=/usr/local --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/mysqld.pid --skip-locking --socket=/var/lib/mysql/mysql.sock --binlog-ignore-db=confixx --binlog-ign
mysql    21353  2.6  3.4 22776 8596 ?        S    Jul14  36:45          _ /usr/local/libexec/mysqld --basedir=/usr/local --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/mysqld.pid --skip-locking --socket=/var/lib/mysql/mysql.sock --binlog-ignore-db=confixx --binlog-ign
root     16693  0.0  4.8 84544 11908 ?       SN   00:15   0:02 /usr/sbin/httpd -f /etc/httpd/httpd.conf -D SSL
wwwrun   16747  0.0  0.5 84076 1380 ?        SN   00:15   0:00  _ /usr/sbin/fcgi- -f /etc/httpd/httpd.conf -D SSL
root     16753  0.0  0.4  2412 1108 ?        SN   00:15   0:01  _ /usr/bin/perl /root/confixx/pipelog.pl
wwwrun   16754  0.0  4.9 85948 12164 ?       SN   00:15   0:07  _ /usr/sbin/httpd -f /etc/httpd/httpd.conf -D SSL
wwwrun   17109  0.0  4.9 86008 12204 ?       SN   00:16   0:05  _ /usr/sbin/httpd -f /etc/httpd/httpd.conf -D SSL
st3fan wrote:

Code: Select all

 lsof -n | grep deleted
Ergebnis:

Code: Select all

ROOT:~ > lsof -sn | grep deleted
php       10469 root  txt    REG        3,3  7010781     525211 /usr/bin/php (deleted)
php       10469 root    3u   REG        3,3        0    4931910 /tmp/session_mm_cli0.sem (deleted)
php       10469 root    5u   REG        3,3        0    4931911 /tmp/sess_d000633ecc1eb8aa4bb62098b4a02ed0 (deleted)
httpd     16693 root    5u   REG        3,3        0    4931598 /tmp/session_mm_apache0.sem (deleted)
httpd     16747 root    5u   REG        3,3        0    4931598 /tmp/session_mm_apache0.sem (deleted)
pipelog.p 16753 root    5u   REG        3,3        0    4931598 /tmp/session_mm_apache0.sem (deleted)
httpd     16754 root    5u   REG        3,3        0    4931598 /tmp/session_mm_apache0.sem (deleted)
httpd     17109 root    5u   REG        3,3        0    4931598 /tmp/session_mm_apache0.sem (deleted)
Wenn mir hier mal jemand die erste Ausgabezeile erklären könnte....

Re: df wird nicht weniger und Platte immer voller

Posted: 2005-07-15 11:57
by lord_pinhead
Wenn das ein Rootie ist, was macht Samba drauf und ein DHCPD ? Ist das ne Kiste bei dir daheim?

Anyway, aus der Ausgabe das PHP gelöscht wurde würd ich mir nix machen. Hab auch ab und an mal eigenartige Einträge:

Code: Select all

inetd      9144     root    0u      CHR        1,3              98029 /dev/null (deleted)
inetd      9144     root    1u      CHR        1,3              98029 /dev/null (deleted)
inetd      9144     root    2u      CHR        1,3              98029 /dev/null (deleted)
mysqld    32332    mysql    7u      REG        8,3        0    132634 /tmp/ibMA6gO2 (deleted)
mysqld    32332    mysql    8u      REG        8,3        0    132637 /tmp/ibGi96AY (deleted)
/dev/null ist aber noch da und funktioniert, also mach ich mir da weniger Sorgen.

Blöd gesagt, fahr mal alle Dienste runter und dann nacheinander wieder hoch, angefangen mit Syslog. Wieviele Files liegen bei dir in /tmp rum? du -hs /tmp sollte es dir sagen.

Re: df wird nicht weniger und Platte immer voller

Posted: 2005-07-15 19:01
by truenoir
Lord_Pinhead wrote:Wenn das ein Rootie ist, was macht Samba drauf
Nun, das war der einzige Trick, der mir eingefallen ist, das Problem der Groß- und Kleinschreibung in den Dateien einer umfangreichen Webseite zu umgehen. Daher wird das WWW-Verzeichnis lokal über Samba eingebunden und Apache auf die samba-Freigabe losgelassen....
Und der Samba ist nur auf dem Server selbst erreichbar, nicht von extern.
Lord_Pinhead wrote:und ein DHCPD ?
Das war von Anfang an so bei 1&1 eingerichtet. Da ich nicht weiß, ob das notwendig ist, hab ichs einfach drinn gelassen. Schaden kanns ja nicht, oder?
Lord_Pinhead wrote: Ist das ne Kiste bei dir daheim?
Nee.
Lord_Pinhead wrote: Wieviele Files liegen bei dir in /tmp rum? du -hs /tmp sollte es dir sagen.
Ergebnis:

Code: Select all

380k    /tmp
Der Server wurde vor 18 Tagen neu gestartet, weil ich dachte, das Problem könne damit behoben werden. Aber geändert hatte sich nichts. Und mir unbekannte Prozesse kann ich nicht finden.

Re: df wird nicht weniger und Platte immer voller

Posted: 2005-07-15 19:57
by Joe User
TrueNoir wrote:Nun, das war der einzige Trick, der mir eingefallen ist, das Problem der Groß- und Kleinschreibung in den Dateien einer umfangreichen Webseite zu umgehen.
Dafür wurde mod_speling erfunden...

Re: df wird nicht weniger und Platte immer voller

Posted: 2005-07-15 20:51
by mausgreck
TrueNoir wrote:Nun, das war der einzige Trick, der mir eingefallen ist, das Problem der Groß- und Kleinschreibung in den Dateien einer umfangreichen Webseite zu umgehen. Daher wird das WWW-Verzeichnis lokal über Samba eingebunden und Apache auf die samba-Freigabe losgelassen....
Absolutely brilliant. :P

Aber zurück zum Thema: warum machst du nicht in gewissen Zeitabständen "ls -lR / > blah" und "diff -u"st die Dinge. Müsste ja ziemlich offensichtlich sein, welche Files wachsen... Tools gibt es für den Zweck sicher auch noch...

Re: df wird nicht weniger und Platte immer voller

Posted: 2005-07-15 21:54
by thorsten
Ich glaube inotify ist in Zukunft das Program der Wahl, wenn man Dateiveränderungen überwachen möchte.

Inotify ist übrigens im nächsten offiziellen 2.6er: http://rlove.org/log/2005/Jul/13

Re: df wird nicht weniger und Platte immer voller

Posted: 2005-07-18 16:05
by truenoir
Joe User wrote:Dafür wurde mod_speling erfunden...
danke für den Tipp :)
mausgreck wrote:Absolutely brilliant. :P
:D
mausgreck wrote:Aber zurück zum Thema: warum machst du nicht in gewissen Zeitabständen "ls -lR / > blah" und "diff -u"st die Dinge. Müsste ja ziemlich offensichtlich sein, welche Files wachsen... Tools gibt es für den Zweck sicher auch noch...
So, das hab ich jetzt mal ein par Tage gemacht. Bei den jeweiligen diff-Dateien kommt zwar eine sehr große Liste (~800kiBi) raus, aber eigentlich ist da auch nichts zu finden, was den Verbrauch erklärt.
Thorsten wrote:Ich glaube inotify ist in Zukunft das Program der Wahl, wenn man Dateiveränderungen überwachen möchte.
Irgendwie kann ich das Programm für Kernel 2.4 nicht finden. Gibts da evtl. noch eine URL zu?

Re: df wird nicht weniger und Platte immer voller

Posted: 2005-07-18 18:33
by Joe User
TrueNoir wrote:Irgendwie kann ich das Programm für Kernel 2.4 nicht finden.
Gibt es auch nur für den 2.6er...

Re: df wird nicht weniger und Platte immer voller

Posted: 2005-07-20 10:07
by truenoir
Joe User wrote:
TrueNoir wrote:Irgendwie kann ich das Programm für Kernel 2.4 nicht finden.
Gibt es auch nur für den 2.6er...
Dann war der Hinweis richtig ja gut dafür, dass ich schon beim ersten Posting geschrieben habe, das ich den 2.4er habe :)

Aber so langsam scheint sich das Problem aufzulösen. Inzwischen werden nur noch ca. 60 MB pro 24 Stunden belegt.....

Re: df wird nicht weniger und Platte immer voller

Posted: 2005-07-20 16:35
by bws
wieso willst du nicht "regelmässig" du -sh /* ausführen?
zweimal ausführen und du weisst schon an welchem hauptverzeichnis es liegt, nen tag später an welchem unterverzeichnis etc...
versteh wirklich nicht wo das problem daran sein soll...

Re: df wird nicht weniger und Platte immer voller

Posted: 2005-07-24 10:40
by truenoir
So wie es aussieht bleibt wohl nichts anderes übrig als das über "du" zu klären.
Ich wollte das bloss nicht tun, weil das a) ca. 15 Minuten dauert (habe sehr viele Dateien auf dem Server) und b) Der Webserver in der Zeit dann komischerweise auch sehr träge reagiert, manchmal kommt beim Browser auch nur noch ein TimeOut an.
Aber ich werds wohl mal probieren müssen.

Cronjob Zombies

Posted: 2005-07-24 15:24
by kawfy
TrueNoir wrote:

Code: Select all

[...]root       517  0.0  0.2  1452  596 ?        S    Jun27   0:20 /usr/sbin/cron
root     10449  0.0  0.2  1456  520 ?        S    Jul14   0:00  _ /USR/SBIN/CRON
root     10459  0.0  0.0     0    0 ?        Z    Jul14   0:00  |   _ [sh <defunct>]
smmsp    10477  0.0  0.2  3156  684 ?        S    Jul14   0:00  |   _ /usr/sbin/sendmail -FCronDaemon -odi -oem root
root     16650  0.0  0.0     0    0 ?        Z    10:11   0:00  _ [cron <defunct>]
root     16651  0.0  0.0     0    0 ?        Z    10:11   0:00  _ [cron <defunct>]
root     16652  0.0  0.0     0    0 ?        Z    10:11   0:00  _ [cron <defunct>]
root     16653  0.0  0.0     0    0 ?        Z    10:11   0:00  _ [cron <defunct>]
root     16654  0.0  0.0     0    0 ?        Z    10:11   0:00  _ [cron <defunct>]
root     16662  0.0  0.0     0    0 ?        Z    10:11   0:00  _ [cron <defunct>][...]
:?: das sieht unsauber aus -- haben die Cronjobs etwas mit deiner Log rotation zu tun? Solange diese Prozesse als Zombies abhängen, geben sie die Dateien nicht frei ...?

Re: Cronjob Zombies

Posted: 2005-07-25 14:20
by truenoir
kawfy wrote::?: das sieht unsauber aus -- haben die Cronjobs etwas mit deiner Log rotation zu tun? Solange diese Prozesse als Zombies abhängen, geben sie die Dateien nicht frei ...?
Sollte sich das auf die "[cron <defunct>]" beziehen, so gibts da jede volle Minute neue, wobei die alten verschwinden:

Code: Select all

~ > ps aux|grep cron
root       517  0.0  0.2  1452  632 ?        S    Jun27   0:33 /usr/sbin/cron
root     15964  0.0  0.0     0    0 ?        Z    14:09   0:00 [cron <defunct>]
root     15965  0.0  0.0     0    0 ?        Z    14:09   0:00 [cron <defunct>]
root     15966  0.0  0.0     0    0 ?        Z    14:09   0:00 [cron <defunct>]
root     15967  0.0  0.0     0    0 ?        Z    14:09   0:00 [cron <defunct>]
root     15968  0.0  0.0     0    0 ?        Z    14:09   0:00 [cron <defunct>]
root     15977  0.0  0.0     0    0 ?        Z    14:09   0:00 [cron <defunct>]
web1     16437  0.0  0.2  1712  732 pts/3    R    14:09   0:00 grep cron
~ > date
Mon Jul 25 14:09:56 CEST 2005
Und in der "nächsten" Minute siehts dann so aus

Code: Select all

~ > ps aux|grep cron
root       517  0.0  0.2  1452  632 ?        S    Jun27   0:33 /usr/sbin/cron
root     16497  0.0  0.0     0    0 ?        Z    14:09   0:00 [cron <defunct>]
root     16499  0.0  0.0     0    0 ?        Z    14:09   0:00 [cron <defunct>]
root     16500  0.0  0.0     0    0 ?        Z    14:09   0:00 [cron <defunct>]
root     16518  0.0  0.0     0    0 ?        Z    14:09   0:00 [cron <defunct>]
root     16529  0.0  0.0     0    0 ?        Z    14:10   0:00 [cron <defunct>]
web1     16577  0.0  0.2  1712  732 pts/3    R    14:10   0:00 grep cron
also neue "defunc"-Prozesse (PIDs).

Die Logrotation läuft eigentlich nur nachts ab.