Linux中df和du顯示不同
linux服務(wù)器,使用df -h查看文件系統(tǒng)使用率,可以看到/dev/xvdb1磁盤(pán)占用了約27G,掛載目錄為/opt。
但進(jìn)入到opt目錄中執(zhí)行:du -sh ,顯示空間總占用量約2.4G,即df 和du查看到的結(jié)果不一致。
du - estimate file space usage
du命令會(huì)對(duì)統(tǒng)計(jì)文件逐個(gè)調(diào)用fstat這個(gè)系統(tǒng)調(diào)用,獲取文件大小。它的數(shù)據(jù)是基于文件獲取,可以跨多個(gè)分區(qū)操作。
df - report file system disk space usage
df命令使用statfs這個(gè)系統(tǒng)調(diào)用,直接讀取分區(qū)的超級(jí)塊信息獲取分區(qū)使用情況。它的數(shù)據(jù)基于分區(qū)元數(shù)據(jù),只能針對(duì)整個(gè)分區(qū)。
導(dǎo)致這個(gè)兩個(gè)命令查看磁盤(pán)容量不一致的原因是,用戶刪除了大量的文件被刪除后,在文件系統(tǒng)目錄中已經(jīng)不可見(jiàn)了,所以du就不會(huì)再統(tǒng)計(jì)它。
然而如果此時(shí)還有運(yùn)行的進(jìn)程持有這個(gè)已經(jīng)被刪除的文件句柄,那么這個(gè)文件就不會(huì)真正在磁盤(pán)中被刪除,分區(qū)超級(jí)塊中的信息也就不會(huì)更改,df仍會(huì)統(tǒng)計(jì)這個(gè)被刪除的文件。
可通過(guò) lsof命令查詢處于deleted狀態(tài)的文件,被刪除的文件在系統(tǒng)中被標(biāo)記為deleted。如果系統(tǒng)有大量deleted狀態(tài)的文件,會(huì)導(dǎo)致du和df統(tǒng)計(jì)結(jié)果不一致。
lsof |grep deleted
1、根據(jù)lsof列出的pid直接kill相應(yīng)進(jìn)程或者重啟對(duì)應(yīng)的服務(wù)。
示例:
kill -9 692
注:如果服務(wù)器正在運(yùn)行業(yè)務(wù),kill 會(huì)導(dǎo)致進(jìn)程直接終止,可能會(huì)影響到業(yè)務(wù),請(qǐng)慎重操作。
2、重啟服務(wù)器。
重啟服務(wù)器系統(tǒng)會(huì)退出現(xiàn)有的進(jìn)程,開(kāi)機(jī)后重新加載。該過(guò)程會(huì)釋放調(diào)用的deleted文件的句柄。
任務(wù)調(diào)度 linux
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。