在服務(wù)器運維過程中,我們時常會遇到這樣的情況,收到服務(wù)器磁盤空間告警:

登錄服務(wù)器,通過df -Hl查看

和告警信息一致,接著我們就是要找到導(dǎo)致磁盤空間滿的目錄或文件。
如何找到占用空間大的目錄或文件?
一種比較笨的方法是,在根目錄下,通過du -hs命令,列出各目錄所占空間大小

之后再用同樣的方法繼續(xù)到對應(yīng)目錄下去找
再相對高效一點的方法是通過du的-d參數(shù),或--max-depth,設(shè)置查詢的目錄深度,目錄深度增加,所查詢的目錄,展示出來會很多,這個時候可以通過grep進(jìn)行過濾。
du-h-d2|grep[GT]|sort-nr du-h--max-depth=2|grep[GT]|sort-nr
通過這樣的方式,可以搜出以G或者T為單位的占用磁盤空間的大目錄,并排序
或者可以通過find來查詢
find/-typef-size+1G-execdu-h{};
從效率上來說,find要比du要更快速、靈活。
通過這兩種方法,我們可以快速找到占用磁盤空間的罪魁禍?zhǔn)住?/p>
你以為就這么簡單?很多時候,你會發(fā)現(xiàn),通過find或du查半天,發(fā)現(xiàn)所有加起來的占用空間,和df看到的磁盤空間占用,相差很大,就比如我上面的兩張圖。
通過df查看,磁盤使用37G,但是在根目錄下通過du -hs 查看,總共加起來差不多10G,沒有隱藏目錄,那空間被誰吃了?
很明顯,有空間被已刪除文件占用,文件刪除了,但是資源沒釋放。
之前介紹過一個很好用的命令:lsof,我們可以通過以下命令去查看
lsof+L1

從結(jié)果可以看出,有一個28G左右的大日志文件,刪除了,但是空間沒釋放,這是很常見的一種情況。
對應(yīng)的解決方法就是,重啟tomcat應(yīng)用,釋放空間
磁盤空間莫名被吃?
還有一種經(jīng)常有人問的問題,就是,通過df查看到的磁盤

會發(fā)現(xiàn),Used和Avail加起來不夠Size,莫名被吃掉一部分
其實這是Linux文件系統(tǒng)的一種安全策略,它默認(rèn)會為root用戶保留5%的磁盤空間,留作緊急情況使用。這樣能保證有些關(guān)鍵應(yīng)用(比如數(shù)據(jù)庫)在硬盤滿的時候有點余地,不致于馬上就 crash
我們可以通過tune2fs修改預(yù)留空間的比例
tune2fs-m1/dev/vda1
通過下圖可以看到前后對比

這樣被吃掉的空間,就釋放出來了!
-
服務(wù)器
+關(guān)注
關(guān)注
14文章
10321瀏覽量
91643 -
磁盤
+關(guān)注
關(guān)注
1文章
398瀏覽量
26555 -
運維
+關(guān)注
關(guān)注
1文章
285瀏覽量
8694
原文標(biāo)題:Linux 磁盤空間被吃掉了?這樣排查不背鍋
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
如何在Ubuntu系統(tǒng)中釋放磁盤空間
PNA-X校準(zhǔn)可以首先檢查是否有足夠的磁盤空間可用嗎
在Linux下增加磁盤空間的步驟
啟動DevEco Studio的本地模擬器提示磁盤空間不足要怎么解決?
如何在Mac上清理磁盤空間?這些方法你用過了嗎
Linux中的可用磁盤空間如何檢查?
簡單又快速看懂linux的磁盤劃分
找不到服務(wù)器或DNS錯誤時該怎么辦
通過df命令顯示磁盤空間使用情況
linux磁盤空間滿了怎么清理
ddos造成服務(wù)器癱瘓后怎么辦
Linux磁盤管理指令合集:從查看、分區(qū)到修復(fù)
服務(wù)器運維過程收到磁盤空間告警怎么辦
評論