生產環境中數據文件刪除,空間不釋放問題

首先數據文件刪除文件系統空間不釋放的問題不只出現在Linux平臺,所有平臺都可能有這樣的問題。這里只是在Linux平臺做一些測試,其他平臺類似;其次只有將數據文件存放在文件系統中才會有此類問題。空間沒有釋放我們可能是通過df命令確認的,當我們用du去掃描目錄的大小可能會發現df和du兩個命令看到的空間使用情況是不同的,可能差別很大,找了一些文檔,解決了這個問題;寫這篇博客,希望跟大家分享一下。

今天通過監控,監控到某臺服務器上的/home目錄滿了;通過df? -Th ,如下圖顯示:

微信圖片_20180518122046

上圖中顯示:/home,Used%率達到100%;

隨后用du? -sh ,發現/home總共才73G;微信圖片_20180518122531微信圖片_20180518122626

而且在/home目錄下并沒有找到大文件;看起來好詭異。

“df”命令報告使用了多少個磁盤塊,同時“du”遍歷文件系統,并報告所使用的區塊的實際數量(按目錄下的目錄),包括與進程使用的文件相關的任何內容。

在大多數情況下,從“df”和“du”返回的空間利用率將是一致的。但是,對于一個正在運行的進程來說,刪除一個大文件的潛力是存在的。在這個例子中,根據“du”,大文件不再存在,因此與刪除文件相關聯的區塊不會被報告。隨著進程仍在運行,并且仍然保留著對已刪除文件的開放文件描述符,“df”繼續跟蹤和報告所使用的所有磁盤塊,包括與已刪除(幻影)文件相關聯的磁盤塊。在這種情況下,與被刪除的文件相關聯的磁盤空間只會在進程完全釋放被刪除的文件描述符或進程終止時(被殺死)時被釋放回系統。

??? 解決方案

????????? 解決方案是識別并停止(或殺死)繼續為已刪除文件打開文件描述符的過程。要做到這一點,請運行lsof命令(/usr/sbin/lsof )作為根來識別扣留過程,例如:

?????????????????? ?????????????????? #lsof?? /home/? 找出持有/home目錄下文件的進程

?????????????????? #lsof? | grep deleted?? 數量太多的話,直接過濾出來,kill掉

下圖中,發現都是faclcon-ag進程運行時,刪除的一些日志文件;文件被刪除了,但是進行還在運行著。殺掉這些進程,空間就可以得到釋放。

微信圖片_20180518123521

微信圖片_20180518123530

 

之所以df和du命令看到的空間使用會有差別,原因在于du不統計已經刪除的文件,df會統計已經刪除的文件,但該文件依然被進程持有,只有等進程釋放了該文件,df才不進行統計。通過lsof | grep deleted命令可以找出被刪除的文件依然被進程持有的情況。

?????????? 總結:對于此類問題,我們首先要明白為什么df和du在空間計算上有所差別,其次要熟悉lsof和fuser兩個命令,找出繼續持有文件的進程號,通過該進程號可以在/proc目錄下恢復文件,查看進程的環境信息,甚至殺掉進程來釋放空間。

 

 

 

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/98763

(1)
shenjialongshenjialong
上一篇 2018-05-17 21:20
下一篇 2018-05-18 15:00

相關推薦

  • linux 文本處理三劍客

    grep 作用:文本搜索工具,根據用戶指定的“模式”對目標文本逐行進行匹配檢查;打印匹配到的行。 模式:由正則表達式字符及文本符所編寫的過濾條件 grep ?命令選項: 正則表達式: 基本正則表達式元字符 ? ? ?字符匹配: 正則表達式: 正則表達式: 正則表達式: 示例:a\|b: a或b ? ?C\|cat :C或cat ? ? ? ? \(C\|c\…

    Linux筆記 2018-04-15
  • shell腳本邏輯運算及條件判斷

    shell腳本基礎,判斷與運算命令用法大全

    2018-04-10
  • 第二周作業

    1,Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示
    2,bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示
    3,使用命令行展開功能來完成以下練習

    2018-06-28
  • 羅列Linux發行版的基礎目錄名稱命名法則及功用規定

    FHS: ? ? Filesystem Hierarchy Standard http://refspecs.linuxfoundation.org/ http://refspecs.linuxfoundation.org/fhs.shtml ? ? /bin:所有用戶可用的基本命令程序文件; ? ? /sbin:工系統管理使用的工具程序; ? ? /boo…

    Linux筆記 2018-05-13
  • 官方EPEL源配置

    本人最近在做實驗zabbix, 鬧了半天yum沒有提供zabbix,最好才發現yum沒提供,只有官方源才有
    這里最近操作安裝epel源的整個過程,覺得對大家比較有用,發出來給大家如果需要的時候過來看看

    請大家進入筆記鏈接學習

    Linux筆記 2018-04-27
  • 第一周作業筆記

    1、描述計算機的組成及其功能。
    2、按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別。
    3、描述Linux的哲學思想,并按照自己的理解對其進行解釋性描述。
    4、說明Linux系統上命令的使用格式;詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相應的示例來闡述。
    5、如何在Linux系統上獲取命令的幫助信息,請詳細列出,并描述man文檔的章節是如何劃分的。
    6、請羅列Linux發行版的基礎目錄名稱命名法則及功用規定

    Linux筆記 2018-06-21
欧美性久久久久