日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Linux下的磁盘空间管理

發(fā)布時(shí)間:2023/12/4 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux下的磁盘空间管理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

df -h /文件夾名

du -sh /文件夾名

后者統(tǒng)計(jì)的是我們能點(diǎn)開到的文件占用的空間,前者是總空間減去剩余空間。

可能出現(xiàn)的情況是二者不統(tǒng)一,原因見下:

http://wushank.blog.51cto.com/3489095/1533409

一、df和du的統(tǒng)計(jì)機(jī)制:

??? 1、du會(huì)把指定目錄下所有文件、目錄、目錄下的文件都統(tǒng)計(jì)。是建立在文件系統(tǒng)能看到的的確確是有這樣一些文件的基礎(chǔ)上的。也就是說我們能在文件系統(tǒng)里面看到的文件才會(huì)被du統(tǒng)計(jì)。

??? 2、df(df命令通過查看文件系統(tǒng)磁盤塊分配圖得出總塊數(shù)與剩余塊數(shù)。):

????????

?????? 這要從程序?qū)懳募姆绞絹碚勂?#xff0c;一個(gè)進(jìn)程要向一個(gè)文件里面寫東西,那么會(huì)得到一個(gè)pointer,

然后向指針指向的文件(磁盤區(qū)域)寫入。假如由于某些原因(也可能人為)被指向的文件被刪除了,但是(?write call)并不知道文件是否還在,就還會(huì)繼續(xù)向里面寫,不管文件是否存在,磁盤塊還是被寫操作使用。

于是因?yàn)槲募]有了,所以du統(tǒng)計(jì)不到寫入的這些磁盤塊,但是因?yàn)閷懙倪M(jìn)程還在,磁盤空間沒有被釋放,所以df卻能統(tǒng)計(jì)到,所以df統(tǒng)計(jì)的結(jié)果比du大很多。

如何解決呢?

1.停止系統(tǒng)上的程序。

2.如果還是不行,unmount一下文件系統(tǒng)看看

3.重啟系統(tǒng)


二、ls和du統(tǒng)計(jì)機(jī)制:

??????一個(gè)文件占用的磁盤空間和一個(gè)文件的大小是兩碼事情。

????? 占用空間取決于文件系統(tǒng)的塊(block)的大小,linux一般默認(rèn)是4k(4096),因此,一個(gè)大小為1個(gè)字節(jié)的文件,最小也要占用4k,如果你創(chuàng)建文件系統(tǒng)的時(shí)候制定塊大小是16K,那么即便一個(gè)文件只有1個(gè)字節(jié),占用空間也是16K。
????? 如果一個(gè)分區(qū)上主要放大文件,那么block可以大一些,有利于減少磁盤碎片,如果主要放小文件,那么block設(shè)置小一下,否則太浪費(fèi)磁盤空間。
????? 通常情況下,ls 顯示的文件大小比du顯示的磁盤占用空間小

????? 原因:?? 比如文件系統(tǒng)的block是4K,一個(gè)13K的文件占用的空間是 13k/4k = 3.25個(gè)block,一個(gè)block只能被一個(gè)文件占用,因此實(shí)際占用空間就是4個(gè)block,就是16K。


????? 如果一個(gè)文件有比較大的黑洞,那么會(huì)出現(xiàn)文件大小比磁盤空間占用大的情況

????? 原因:?? 首先要理解什么是黑洞,怎么才能產(chǎn)生黑洞?

???????? 在向一個(gè)文件中寫數(shù)據(jù)的時(shí)候,文件偏移量可以大于文件的當(dāng)前長(zhǎng)度,在這種情況下,對(duì)該文件的下一次寫將加長(zhǎng)該文件,并在文件中構(gòu)成一個(gè)空洞,這一定是允許的。位于文件中但沒有寫過的字節(jié)都被讀為0.?? 文件中的空洞并不要求在磁盤上占用存儲(chǔ)區(qū)。具體處理方式與文件系統(tǒng)的實(shí)現(xiàn)有關(guān),當(dāng)定位超出文件尾端之后寫時(shí),對(duì)于新寫的數(shù)據(jù)需要分配磁盤塊,但是對(duì)于原文件尾端和新開始寫位置之間的部分則不需要分配磁盤塊。

??? 稀疏文件--文件中有“洞”(hole)的文件

用Shell也可以創(chuàng)建稀疏文件:

$?dd?if=/dev/zero?of=sparse_file.img?bs=1M?seek=1024?count=0 0+0?records?in 0+0?records?out

查看方法:

?ls -s? : 反應(yīng)磁盤分配情況,非實(shí)際文件大小,以block為單位????== du
?ls -lh : 反應(yīng)實(shí)際文件大小????== du --apparent-size

常用的解決辦法就是:

lsof |grep deleted

sudo kill -9 進(jìn)程編號(hào)

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的Linux下的磁盘空间管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。