磁盤利用率持續過高,清除日誌文件後空間不釋放問題排查

一、問題描述:

    1.線上應用寫大量日誌,收到磁盤利用率過高的告警

    2.刪除大日誌文件,仍然持續告警

二、根本原因:

在linux服務器上,rm -r大的日誌文件後,如果使用該文件的進程沒有關閉,是不會真實的釋放磁盤空間的

三、排查過程

1.df -h命令查看當前服務器磁盤使用率情況,發現被使用了50G的空間,使用率搞到89%

2.查看日誌文件目錄下佔用的總磁盤大小,發現只佔用了20M的磁盤空間,並沒有50G的空間大小

3.50G的空間到底去哪裏了?

lsof |grep deleted 命令進行查看,發現有很多50M左右被刪除了的日誌文件,算了一下正好就是被使用了的50G

四、解決辦法

 1.重啓應用,刪掉進程,讓鏈接斷開,os自動清理被deleted的日誌文件---這種方式需要重啓應用,一般在緊急情況下使用

  2.正確的做法應該是,日誌文件定期轉儲,或軟連到雲盤上採用異步日誌框架輸出。--推薦做法