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

從結(jié)果可以看出,有一個(gè)28G左右的大日志文件,刪除了,但是空間沒(méi)釋放,這是很常見(jiàn)的一種情況。
對(duì)應(yīng)的解決方法就是,重啟tomcat應(yīng)用,釋放空間
磁盤空間莫名被吃?
還有一種經(jīng)常有人問(wèn)的問(wèn)題,就是,通過(guò)df查看到的磁盤
會(huì)發(fā)現(xiàn),Used和Avail加起來(lái)不夠Size,莫名被吃掉一部分
其實(shí)這是Linux文件系統(tǒng)的一種安全策略,它默認(rèn)會(huì)為root用戶保留5%的磁盤空間,留作緊急情況使用。這樣能保證有些關(guān)鍵應(yīng)用(比如數(shù)據(jù)庫(kù))在硬盤滿的時(shí)候有點(diǎn)余地,不致于馬上就 crash
我們可以通過(guò)tune2fs修改預(yù)留空間的比例
tune2fs-m1/dev/vda1
通過(guò)下圖可以看到前后對(duì)比
這樣被吃掉的空間,就釋放出來(lái)了!
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9425瀏覽量
86494 -
磁盤
+關(guān)注
關(guān)注
1文章
382瀏覽量
25367 -
運(yùn)維
+關(guān)注
關(guān)注
1文章
265瀏覽量
7731
原文標(biāo)題:Linux 磁盤空間被吃掉了?這樣排查不背鍋
文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
如何在Ubuntu系統(tǒng)中釋放磁盤空間
Linux磁盤空間異常爆滿,該怎么查?
PNA-X校準(zhǔn)可以首先檢查是否有足夠的磁盤空間可用嗎
在Linux下增加磁盤空間的步驟
啟動(dòng)DevEco Studio的本地模擬器提示磁盤空間不足要怎么解決?
如何在Mac上清理磁盤空間?這些方法你用過(guò)了嗎
請(qǐng)問(wèn)根目錄分區(qū)磁盤空間不夠了怎么擴(kuò)充?
Linux中的可用磁盤空間如何檢查?

簡(jiǎn)單又快速看懂linux的磁盤劃分

找不到服務(wù)器或DNS錯(cuò)誤時(shí)該怎么辦

通過(guò)df命令顯示磁盤空間使用情況
linux磁盤空間滿了怎么清理

評(píng)論