您好,登錄后才能下訂單哦!
小編給大家分享一下Linux磁盤空間被未知資源耗盡怎么辦,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
在linux中,當(dāng)我們使用rm在linux上刪除了大文件,但是如果有進(jìn)程打開了這個(gè)大文件,卻沒有關(guān)閉這個(gè)文件的句柄,那么linux內(nèi)核還是不會(huì)釋放這個(gè)文件的磁盤空間,最后造成磁盤空間占用100%,整個(gè)系統(tǒng)無法正常運(yùn)行。這種情況下,通過df和du命令查找的磁盤空間,兩者是無法匹配的,可能df顯示磁盤100%,而du查找目錄的磁盤容量占用卻很小。
遇到這種情況,基本可以斷定是某些大文件被某些程序占用了,并且這些大文件已經(jīng)被刪除了,但是對(duì)應(yīng)的文件句柄沒有被某些程序關(guān)閉,造成內(nèi)核無法回收這些文件占用的空間。
那么,如何查找那些文件被某些程序占用呢,命令如下
lsof -n | grep deleted COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME dd 31708 higkoo 1w REG 8,2 5523705856 429590 /data/filetest (deleted)
命令打lsof -n | grep deleted印出所有針對(duì)已刪除文件的讀寫操作,這類操作是無效的,也正是磁盤空間莫名消失的根本原因
備注:本人遇到的場(chǎng)景是同事刪除了mysql的表,但是是在shell上執(zhí)行rm表的文件,而不是通過drop table之類的命令去刪除表的,于是mysql會(huì)一直占用這些表文件的句柄,最后造成磁盤空間100%,這種情況下,也不用重啟mysql,只要進(jìn)入mysql客戶端執(zhí)行flush tables就行了。
以上是“Linux磁盤空間被未知資源耗盡怎么辦”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。