您好,登錄后才能下訂單哦!
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é)果要稍大.
免責(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)容。