du -skh * a / rendimenti dimensioni molto diverso da df su CentOS 5.5
Domanda
Ho un VPS fetta esecuzione CentOS 5.5 dovrei avere 15 GB di spazio su disco, ma secondo df sembra raddoppiare il mio utilizzo dello spazio su disco.
quando corro du -skh *
in / root ottengo:
[root@yardvps1 /]# du -skh *
0 aquota.group
0 aquota.user
5.2M bin
4.0K boot
4.0K dev
4.9M etc
2.5G home
12M lib
14M lib64
4.0K media
4.0K mnt
299M opt
0 proc
692K root
23M sbin
4.0K selinux
4.0K srv
0 sys
48K tmp
2.0G usr
121M var
questo è coerente con quello che ho caricato la macchina, e aggiunge fino a circa 5gigs.
MA quando ho eseguito df
io ottenere:
[root@yardvps1 /]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/simfs 15728640 11659048 4069592 75% /
none 262144 4 262140 1% /dev
sta mostrando me usando già quasi 12 concerti.
che cosa sta causando questa discrepanza e c'è qualcosa che posso fare a questo proposito, ho progettato il server sulla base di 15 concerti, ma ora è fondamentalmente solo avermi permesso di avere circa 7 giga di roba su di esso.
Grazie.
Soluzione
La causa più comune di questo effetto è aprire file che sono stati eliminati.
Il kernel libererà solo i blocchi del disco di un file eliminato se non è in uso al momento della sua eliminazione. In caso contrario, che viene differito finché il file viene chiuso, o il sistema viene riavviato.
Un trucco comune Unix-mondo al fine di garantire che nessun file temporanei vengono lasciati in giro è la seguente:
-
Un processo crea e apre un file temporaneo
-
Mentre ancora in mano il descrittore di file aperto, le separa il processo (cioè elimina) il file
-
Il processo di lettura e scrittura al file che utilizzano normalmente il descrittore di file
-
Il processo si chiude il descrittore di file quando è fatto, e le frees kernel lo spazio
-
Se il processo (o il sistema) termina in modo imprevisto, il file temporaneo è già eliminato e non clean-up è necessario.
-
Come bonus, la cancellazione del file riduce le possibilità di nominare collisioni durante la creazione di file temporanei e fornisce anche un ulteriore livello di oscurità nel corso dei processi in esecuzione -. Per chiunque, ma l'utente root, che è
Questo comportamento assicura che i processi non hanno a che fare con i file che vengono improvvisamente tirato da sotto i loro piedi, e anche che i processi non hanno a consultarsi al fine di eliminare un file. Si tratta di un comportamento imprevisto per chi proviene da sistemi Windows, però, dal momento che lì non sono normalmente permesso di eliminare un file che è in uso.
Il comando lsof
, quando eseguito come root, vi mostrerà tutti i file aperti e sarà specificamente indicare i file cancellati che vengono eliminati:
# lsof 2>/dev/null | grep deleted
bootlogd 2024 root 1w REG 9,3 58 917506 /tmp/init.0W2ARi (deleted)
bootlogd 2024 root 2w REG 9,3 58 917506 /tmp/init.0W2ARi (deleted)
L'arresto e il riavvio dei processi colpevoli, o semplicemente riavviare il server dovrebbe risolvere questo problema.
I file eliminati potrebbe anche essere tenuto aperto dal kernel se, ad esempio, si tratta di un immagine di un filesystem montato. In questo caso smontare il filesystem o riavviare il server dovrebbe fare il trucco.
Nel tuo caso, a giudicare dalle dimensioni dello spazio "mancante" Mi piacerebbe cercare qualsiasi riferimento al file che si è utilizzato per impostare il VPS per esempio l'immagine Centos DVD che è stato eliminato dopo l'installazione.
Altri suggerimenti
Un altro caso che ho incontrato, anche se non sembra essere il problema è che se si monta una partizione "in primo piano" dei file esistenti.
In tal caso si nasconde in modo efficace i file esistenti presenti nella directory sul montata a partizione (il punto di montaggio) dalla partizione montata.
Per risolvere:. Fermare tutti i processi con file aperti sulla partizione, la partizione di smontaggio montato, trovare e spostare / rimuovere qualsiasi file che ora appaiono in montare directory punto
Ho avuto lo stesso problema con il server FreeBSD. Il riavvio aiutato.