各位小伙伴,以下是我的一些處理方法,與大家共享。
今天上傳了一個(gè)13kb的文件,提示磁盤(pán)已滿,不能上傳。df -h 查了一下,如下圖:
磁盤(pán)慢了
由于是開(kāi)發(fā)環(huán)境,堆滿了大量的日志沒(méi)刪,10g了,于是我刪除了一些很久的日志,8g。奇怪的事情發(fā)生了,命令查看磁盤(pán),依然是100%。linux還是跟windows區(qū)別挺大的么,windows我們刪除了文件,馬上就有磁盤(pán)釋放了。想到的就是刪除的文件并不能釋放出磁盤(pán)(當(dāng)時(shí)只是猜測(cè)),于是lsof | grep deleted 查了一下。
果斷地把這些進(jìn)程都kill掉了,哎呦喂,奇跡發(fā)生了,df -h 查看:
已經(jīng)從100%降到了13%。問(wèn)題解決了,于是找度娘查了下linux刪除的機(jī)制,大致如下:
一個(gè)文件在文件系統(tǒng)中的存放分為兩個(gè)部分:數(shù)據(jù)部分和指針部分,指針位于文件系統(tǒng)的meta-data中,數(shù)據(jù)被刪除后(例如我們的日志文件),這個(gè)指針就從meta-data中清除了,而數(shù)據(jù)部分存儲(chǔ)在磁盤(pán)中,數(shù)據(jù)對(duì)應(yīng)的指針從meta-data中清除后,文件數(shù)據(jù)部分占用的空間就可以被覆蓋并寫(xiě)入新的內(nèi)容,之所以出現(xiàn)刪除log文件后,空間還沒(méi)釋放,就是因?yàn)閔ttpd進(jìn)程還在一直向這個(gè)文件寫(xiě)入內(nèi)容,導(dǎo)致雖然刪除了log文件,但文件對(duì)應(yīng)的指針部分由于進(jìn)程鎖定,并未從meta-data中清除,而由于指針并未被刪除,那么系統(tǒng)內(nèi)核就認(rèn)為文件并未被刪除,因此通過(guò)df命令查詢空間并未釋放也就不足為奇了。一般說(shuō)來(lái)不會(huì)出現(xiàn)刪除文件后空間不釋放的情況,但是也存在例外,比如文件被進(jìn)程鎖定,或者有進(jìn)程一直在向這個(gè)文件寫(xiě)數(shù)據(jù)等等,要理解這個(gè)問(wèn)題,就需要知道Linux下文件的存儲(chǔ)機(jī)制和存儲(chǔ)結(jié)構(gòu)。
-
Linux
+關(guān)注
關(guān)注
88文章
11822瀏覽量
219600 -
WINDOWS
+關(guān)注
關(guān)注
4文章
3707瀏覽量
94344
發(fā)布評(píng)論請(qǐng)先 登錄
stm32cubeide 編譯報(bào)錯(cuò)如何處理?
Linux服務(wù)器磁盤(pán)管理機(jī)制和清理策略
Linux磁盤(pán)空間告警的常見(jiàn)原因和診斷方法
Linux磁盤(pán)管理指令合集:從查看、分區(qū)到修復(fù)
Stduio使用wifi模塊出錯(cuò)如何處理?
在M480系列中,GPIO配置為準(zhǔn)雙向模組時(shí),如何處理功耗過(guò)大?
靜力水準(zhǔn)儀在測(cè)量過(guò)程中遇到誤差如何處理?
企業(yè)級(jí)Linux磁盤(pán)維護(hù)的完整流程
Linux系統(tǒng)環(huán)境監(jiān)測(cè)終極指南
飛凌嵌入式ElfBoard ELF 1板卡-文件系統(tǒng)常用命令之磁盤(pán)管理與維護(hù)常用命令
Linux系統(tǒng)性能指南
Linux系統(tǒng)中磁盤(pán)分區(qū)與掛載詳解
ups電源—UPS電源蜂鳴不停這樣搞定
linux磁盤(pán)分區(qū)的三種場(chǎng)景
Linux系統(tǒng)不停的報(bào)磁盤(pán)已滿應(yīng)該如何處理
評(píng)論