溫馨提示×

溫馨提示×

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

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

lsof處理df和du大小不一致的問題

發(fā)布時間:2020-07-05 20:37:56 來源:網(wǎng)絡(luò) 閱讀:2435 作者:kamui0523 欄目:MongoDB數(shù)據(jù)庫

APP服務(wù)器根滿了,一直報警

df顯示根分區(qū)已經(jīng)使用了90%的空間,但是du根分區(qū)總和只有40G左右,該分區(qū)應(yīng)該沒有大量小文件,所以應(yīng)該不會產(chǎn)生大量小文件導(dǎo)致的block寫滿的問題.

網(wǎng)上搜了下發(fā)現(xiàn)有可能是有程序操作大文件導(dǎo)致文件句柄沒有釋放,這些被程序占用著的文件句柄會被df認(rèn)為是存在硬盤上的.

網(wǎng)上是這么解釋的:

du是把目錄下所有的文件統(tǒng)計另起來,而df是從文件系統(tǒng)考慮,統(tǒng)計被分配出去的空間,并且包括被程序申請占用的空間.

如果看來,/目錄下應(yīng)該有大量空間被某個程序占用了.

處理方法 lsof /|grep delete

COMMAND    PID       USER   FD   TYPE    DEVICE   SIZE/OFF              NODE NAME

mongod     2842       root   15u   REG      251,0   536870912    6296116 /var/lib/mongodb/vida_log.3 (deleted)
mongod     2842       root   16u   REG      251,0   536870912    6306826 /var/lib/mongodb/vida_log.4 (deleted)
mongod     2842       root   10u   REG      251,0   536870912    6345649 /var/lib/mongodb/vida_log.0 (deleted)
mongod     2842       root   11u   REG      251,0   536870912    6345658 /var/lib/mongodb/vida_log.1 (deleted)
mongod     2842       root   12u   REG      251,0   536870912    6345659 /var/lib/mongodb/vida_log.2 (deleted)
ruby      25149     vidafm    3w   REG      251,0     5594054      7351133 /var/www/vida_api_120614/log/development.log.4 (deleted)
ruby      26599     vidafm    3w   REG      251,0     5594054      7351133 /var/www/vida_api_120614/log/development.log.4 (deleted)
nginx      9388     nobody   82u   REG      251,0       90112        6162236 /opt/nginx/client_body_temp/0004778814 (deleted)

可以看到SIZE這行的文件都特別大,而且已經(jīng)是delete狀態(tài),說明文件已經(jīng)被刪除但是文件句柄未被程序釋放.

kill掉這些進(jìn)程即可釋放空間

重新df -h后發(fā)現(xiàn)可用空間已經(jīng)變?yōu)榱?0G+了,非常舒服.

網(wǎng)上對df和du的另一種解釋

du -sh命令通過將指定文件系統(tǒng)中所有的目錄,符號鏈接和文件使用的塊數(shù)累加得到該文件系統(tǒng)使用的總塊數(shù)
而df命令通過查看文件系統(tǒng)磁盤塊分配圖得出總塊數(shù)與剩余塊數(shù).
文件系統(tǒng)分配其中的一些磁盤塊用來記錄它自身的一些數(shù)據(jù),如i節(jié)點(diǎn),磁盤分布圖,間接塊,超級塊等.這些數(shù)據(jù)對大多數(shù)用戶級的程序來說是不可見的,通常稱為Meta Data.
du命令是用戶級的程序,它不考慮Meta Data,而df命令則查看文件系統(tǒng)的磁盤分配圖并考慮Meta Data.

因此正常情況下,df計算的USED空間會比du計算的結(jié)果要稍大.


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI