91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Linux系統中釋放磁盤空間

發布時間:2020-12-31 15:03:20 來源:億速云 閱讀:277 作者:Leah 欄目:開發技術

怎么在Linux系統中釋放磁盤空間?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

IDC里的一臺服務器的/分區使用率爆滿了!已達到100%!經查看發現有個文件過大(80G),于是在跟有關同事確認后rm -f果斷刪除該文件。但是發現刪除該文件后,/分區的磁盤空間壓根沒有釋放出來,使用率還是100%!這是為什么呢??

[root@linux-node1 ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/VolGroup00-LogVol00 58G 7.8G 47G 100% /tmpfs 1.9G 0 1.9G 0% /dev/shm/dev/vda1 190M 72M 108M 40% /boot

原因分析

在Linux系統中,通過rm或者文件管理器刪除文件,只是將它會從文件系統的目錄結構上解除鏈接(unlink),也就是說只是刪除了文件和系統目錄結構的鏈接;如果文件在刪除時是被打開的(有一個進程正在使用該文件,文件被進程鎖定或者有進程一直在向這個文件寫數據等)狀態,那么進程將仍然可以讀取該文件,也就是說沒有刪除掉文件在讀取的狀態,所以磁盤空間也就會一直被占用。

一個文件在文件系統中的存放分為兩個部分:數據部分和指針部分,指針位于文件系統的meta-data中,數據被刪除后,這個指針就從meta-data中清除了,而數據部分存儲在磁盤中,數據對應的指針從meta-data中清除后,文件數據部分占用的空間就可以被覆蓋并寫入新的內容,之所以出現刪除文件后,空間還沒釋放,就是因為有進程還在一直向這個文件寫入內容,導致雖然刪除了文件,但文件對應的指針部分由于進程鎖定,并未從meta-data中清除,而由于指針并未被刪除,那么系統內核就認為文件并未被刪除,因此通過df命令查詢空間并未釋放也就不足為奇了。

解決措施有以下幾種

1.通過lsof|grep deleted命令獲取到已經被刪除但是仍然被應用程序占用的文件列表,然后kill掉還在占用所刪除文件的進程。需要注意的是:如果有很多進程都在使用所刪除文件,那么采用第1種方式kill進程就有點麻煩了,而且風險也比較大。因為kill進程是通過截斷proc文件系統中的文件可以強制要求系統回收分配給正在使用的的文件。必須要確定不會對運行中的進程造成影響時才能使用,應用程序對這種方式支持的并不好,當一個正在使用的文件被截斷可能會引發不可預知的問題。

2.或停掉或重啟使用這個所刪除文件的應用,讓OS自動回收磁盤空間。

3.也可以重啟操作系統,不過這并不是最好的方法4.對待這種進程不停對文件寫日志的操作,要釋放文件占用的磁盤空間,最好的方法是在線清空這個文件。通過這種方法,磁盤空間不但可以馬上釋放,也可保障進程繼續向文件寫入日志。

在線清空文件(比如/home/wangshibo.log)的方式:

# echo " " > /home/wangshibo.logb)# cat /dev/null > /home/wangshibo.logc)# > /home/wangshibo.log

還有一種磁盤空間使用問題的現象:明明使用df -h命令查看磁盤空間使用率不算高,還有很多空余空間,但是創建文件或寫入數據時一直報錯磁盤寫滿:" no space left on device"!

一般這種問題都是由于分區目錄下deleted刪除后的資源空間沒有真正釋放出來導致的, 具體處理流程如下:

1.先df -lh查看一下磁盤使用狀況, 發現/data分區下的Used已用空間很大, 但是實際查看并沒有占用那么大的空間!2.找到被刪除文件所在的分區, 比如/data分區3.查看被刪除了的所有文件:lsof -n /data |grep deleted4.殺死這些文件的delete進程, 釋放空間: lsof -n /data |grep deleted|awk '{print $2}'|xargs kill -95.接著再運行lsof -n /data |grep delete,應該就沒有結果了。6.注意: 剛殺死deleted進程時, df -h查看/data 分區, Used已用空間可能時瞬間顯示過大, 但隨著deleted進程殺死, 資源逐漸釋放, /data分區下的Used已用空間會逐漸變小, Avail可用空間會逐漸變大)

大多數文件系統都會保留一部分空間留作緊急情況時用(比如硬盤空間滿了),這樣能保證有些關鍵應用(比如數據庫)在硬盤滿的時候有點余地,不致于馬上就 crash,給監控系統和管理員一點時間去察覺。不過有時候這部分預留的硬盤空間不用的話有點浪費。

在Linux系統中,ext2、ext3、ext4文件系統上通常會默認預留5%的磁盤空間,比如磁盤如果是2TB,這就意味著有100GB的空間會被預留下來,這樣的話會不會顯得有點浪費了。可以通過"tune2fs"命令來改變5%的默認設置,比如只預留2%的空間。但是不建議設成0%,現實環境中這樣做不安全。

# df -TFilesystem Type 1K-blocks Used Available Use% Mounted on/dev/vda1 ext4 41151808 4962148 34076228 13% /devtmpfs devtmpfs 1931468 0 1931468 0% /devtmpfs tmpfs 1941204 0 1941204 0% /dev/shmtmpfs tmpfs 1941204 652 1940552 1% /runtmpfs tmpfs 1941204 0 1941204 0% /sys/fs/cgrouptmpfs tmpfs 388244 0 388244 0% /run/user/0[root@ss-server ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/vda1 40G 4.8G 33G 13% /devtmpfs 1.9G 0 1.9G 0% /devtmpfs 1.9G 0 1.9G 0% /dev/shmtmpfs 1.9G 620K 1.9G 1% /runtmpfs 1.9G 0 1.9G 0% /sys/fs/cgrouptmpfs 380M 0 380M 0% /run/user/0

比如上面"/"分區是ext4文件系統,默認系統預留了5%也就是2G的空間。現在可以通過"tune2fs"命令將系統預留空間改為2%。

# tune2fs -m 2 /dev/vda1tune2fs 1.42.9 (28-Dec-2013)Setting reserved blocks percentage to 2% (209704 blocks)

執行后,發現"/"分區騰出了1G的空間,這時系統預留空間也就是2%了。

[root@ss-server ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/vda1 40G 4.8G 34G 13% /devtmpfs 1.9G 0 1.9G 0% /devtmpfs 1.9G 0 1.9G 0% /dev/shmtmpfs 1.9G 620K 1.9G 1% /runtmpfs 1.9G 0 1.9G 0% /sys/fs/cgrouptmpfs 380M 0 380M 0% /run/user/0

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

普格县| 绍兴县| 霍州市| 夏河县| 宜昌市| 铁力市| 定陶县| 红原县| 乌苏市| 濮阳县| 兖州市| 龙山县| 峨眉山市| 汤原县| 藁城市| 岳普湖县| 南丰县| 图们市| 中山市| 吴川市| 车险| 封开县| 赤城县| 澄城县| 宜城市| 兴宁市| 永寿县| 弥勒县| 洪湖市| 萨迦县| 科尔| 宝应县| 莱芜市| 遂宁市| 新化县| 鲜城| 宁明县| 开阳县| 和龙市| 左贡县| 东平县|