最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux根分區(qū)爆滿(占用81%)排查與解決方案

 更新時間:2026年04月07日 09:17:31   作者:帥氣的你  
在Linux服務(wù)器運(yùn)維過程中,根分區(qū)爆滿是非常常見的緊急故障,若不及時處理,會導(dǎo)致服務(wù)器無法正常運(yùn)行、服務(wù)卡頓甚至崩潰,因此本文記錄了一次CentOS服務(wù)器根分區(qū)占用81%的排查與解決過程,需要的朋友可以參考下

在Linux服務(wù)器運(yùn)維過程中,根分區(qū)爆滿是非常常見的緊急故障,若不及時處理,會導(dǎo)致服務(wù)器無法正常運(yùn)行、服務(wù)卡頓甚至崩潰。本文以本人(Java技術(shù)人員)的視角,記錄一次CentOS服務(wù)器根分區(qū)占用81%的完整排查、定位與解決過程——運(yùn)維同事先告知服務(wù)器磁盤空間報警,且已自行刪除對應(yīng)的大文件,但未將刪除操作及后續(xù)情況通知我,導(dǎo)致我排查時出現(xiàn)諸多異常,全程實操可復(fù)現(xiàn),適合Java技術(shù)人員、運(yùn)維新手參考學(xué)習(xí)。

一、故障現(xiàn)象

登錄服務(wù)器后,執(zhí)行常規(guī)磁盤空間查詢命令 df -h,發(fā)現(xiàn)根分區(qū)(/)異常:

[root@localhost /]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 7.8G     0  7.8G   0% /dev
tmpfs                    7.8G     0  7.8G   0% /dev/shm
tmpfs                    7.8G  161M  7.6G   3% /run
tmpfs                    7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/mapper/centos-root   50G   41G  9.7G  81% /
/dev/sda1               1014M  150M  865M  15% /boot
/dev/mapper/centos-home   42G  699M   41G   2% /home
tmpfs                    1.6G     0  1.6G   0% /run/user/0

根分區(qū)總大小50G,已使用41G,使用率達(dá)81%,剩余空間不足10G,隨時可能爆滿。按照常規(guī)思路,先排查根目錄下各文件夾的占用情況,定位大文件。

二、初步排查:定位根目錄大文件夾

切換到根目錄(cd /),執(zhí)行命令查詢所有一級目錄的占用大小,并按從大到小排序:

[root@localhost /]# du -sh * | sort -hr

執(zhí)行結(jié)果出現(xiàn)異常:所有目錄占用大小相加不足4G,與df -h顯示的41G已用空間嚴(yán)重不符,且出現(xiàn)部分無法訪問的提示(proc目錄相關(guān),屬正?,F(xiàn)象):

du: cannot access ‘proc/25935/task/25935/fd/4': No such file or directory
du: cannot access ‘proc/25935/task/25935/fdinfo/4': No such file or directory
1.9G    usr
667M    home
640M    var
334M    opt
161M    run
147M    root
118M    boot
32M     etc
68K     tmp
0       sys
0       srv
0       sbin
0       proc
0       mnt
0       media
0       lib64
0       lib
0       dev
0       bin

三、關(guān)鍵定位:找到“隱形”占用文件

排查到這里陷入疑惑:所有目錄占用相加不足4G,與df -h顯示的41G已用空間嚴(yán)重不符,后續(xù)與運(yùn)維同事溝通后才得知,運(yùn)維同事在告知我磁盤空間報警后,已自行刪除了服務(wù)器上的大文件(即后續(xù)定位到的nohup.out文件),但未及時通知我這一操作,也未檢查該大文件對應(yīng)的Java進(jìn)程是否釋放文件句柄。結(jié)合運(yùn)維經(jīng)驗,這種“du與df結(jié)果不一致”的情況,大概率是 文件已被刪除,但對應(yīng)的進(jìn)程仍在占用該文件,導(dǎo)致磁盤空間未釋放。被刪除的文件此時會變成“隱形文件”,常規(guī)查詢無法發(fā)現(xiàn),但會持續(xù)占用磁盤空間,這也解釋了為什么運(yùn)維同事刪除大文件后,磁盤占用依然居高不下,且我排查時會出現(xiàn)“目錄占用與磁盤已用嚴(yán)重不匹配”的異常。

執(zhí)行以下命令,查找所有被刪除但仍被進(jìn)程占用的文件:

[root@localhost /]# lsof | grep deleted

執(zhí)行結(jié)果瞬間定位到元兇:一個Java進(jìn)程(PID為26192)占用了一個已刪除的nohup.out文件,該文件大小高達(dá)37.8G,正是導(dǎo)致根分區(qū)爆滿的核心原因!同時還有zabbix-agent進(jìn)程占用少量已刪除文件(影響可忽略)。

核心異常輸出片段:

java      26192          root    1w      REG              253,0 37889443145   34805216 /opt/unionpay/nohup.out (deleted)
java      26192          root    2w      REG              253,0 37889443145   34805216 /opt/unionpay/nohup.out (deleted)

補(bǔ)充說明:lsof 命令用于查看進(jìn)程打開的文件,grep deleted 篩選出已被刪除但仍被進(jìn)程占用的文件;輸出中“37889443145”即為文件大小(約35.3G),“26192”是占用該文件的Java進(jìn)程PID,“1w”“2w”表示進(jìn)程的標(biāo)準(zhǔn)輸出(stdout)和標(biāo)準(zhǔn)錯誤(stderr)仍指向該文件。

四、解決方案:釋放空間(無需重啟Java進(jìn)程)

對于這種“進(jìn)程占用已刪除文件”的場景,有兩種解決方式:

  1. 重啟占用文件的進(jìn)程:簡單直接,但會導(dǎo)致服務(wù)中斷(不適合生產(chǎn)環(huán)境核心服務(wù));
  2. 清空進(jìn)程占用的文件描述符:無需重啟進(jìn)程,瞬間釋放空間,適合生產(chǎn)環(huán)境。

本次采用第二種方式,針對Java進(jìn)程(PID=26192)的文件描述符(1和2,對應(yīng)stdout和stderr)執(zhí)行清空操作:

[root@localhost /]# > /proc/26192/fd/1
[root@localhost /]# > /proc/26192/fd/2

命令說明:/proc/[PID]/fd/ 目錄下存放著進(jìn)程打開的所有文件描述符,“1”對應(yīng)標(biāo)準(zhǔn)輸出,“2”對應(yīng)標(biāo)準(zhǔn)錯誤;> 符號表示清空文件內(nèi)容(而非刪除文件),執(zhí)行后會立即釋放該文件占用的磁盤空間。

執(zhí)行完成后,再次執(zhí)行 df -h 驗證,根分區(qū)使用率已降至正常水平(約8%),空間釋放成功。

五、補(bǔ)充優(yōu)化:處理次要占用與避免復(fù)發(fā)

1. 清理zabbix-agent占用的已刪除文件

除Java進(jìn)程外,zabbix-agent進(jìn)程也占用了少量已刪除文件(日志和PID文件),雖不影響磁盤空間,但為了系統(tǒng)整潔,重啟zabbix-agent服務(wù)即可釋放:

[root@localhost /]# systemctl restart zabbix-agent

2. 避免后續(xù)再出現(xiàn)類似問題

本次故障的根源是:運(yùn)維同事告知我服務(wù)器磁盤空間報警后,自行刪除了持續(xù)增大的nohup.out大文件,但未通知我這一操作,也未檢查該文件對應(yīng)的Java進(jìn)程是否釋放文件句柄;同時,最初使用nohup啟動Java服務(wù)時,未處理輸出日志,導(dǎo)致nohup.out文件持續(xù)增大,多重因素疊加,最終導(dǎo)致磁盤爆滿。針對此問題,給出兩個優(yōu)化方案,同時規(guī)范團(tuán)隊溝通與操作流程:

  1. 丟棄nohup輸出(推薦,無需日志時): nohup java -jar xxx.jar > /dev/null 2>&1 & 說明:/dev/null 表示丟棄輸出,2>&1 表示將標(biāo)準(zhǔn)錯誤重定向到標(biāo)準(zhǔn)輸出,最終所有輸出都被丟棄,不會生成nohup.out文件。
  2. 配置日志輪轉(zhuǎn)(需要保留日志時): 使用logrotate工具對nohup.out或Java應(yīng)用日志進(jìn)行輪轉(zhuǎn),設(shè)置日志大小限制、保留天數(shù),避免日志無限增大。

六、總結(jié)與復(fù)盤

本次故障排查核心邏輯:df -h 發(fā)現(xiàn)磁盤爆滿 → du -sh * 排查目錄占用,發(fā)現(xiàn)異常(大小不匹配) → lsof | grep deleted 定位進(jìn)程占用的已刪除文件 → 清空文件描述符釋放空間 → 優(yōu)化配置避免復(fù)發(fā)。

關(guān)鍵知識點:

  • df 查看磁盤分區(qū)整體使用情況,du 查看目錄/文件具體占用大小,兩者結(jié)果不一致時,優(yōu)先考慮“進(jìn)程占用已刪除文件”;
  • lsof | grep deleted 是定位此類問題的核心命令,可快速找到隱形占用文件;
  • 生產(chǎn)環(huán)境中,避免直接重啟核心服務(wù),優(yōu)先使用“清空文件描述符”的方式釋放空間,減少服務(wù)中斷風(fēng)險。

通過本次排查,不僅解決了磁盤爆滿問題,還掌握了“進(jìn)程占用已刪除文件”的排查技巧,同時也提醒團(tuán)隊:運(yùn)維操作需規(guī)范、溝通需及時——運(yùn)維同事執(zhí)行刪除大文件等關(guān)鍵操作后,需及時通知相關(guān)技術(shù)人員(如Java開發(fā)/技術(shù)人員),且必須檢查對應(yīng)進(jìn)程是否釋放文件句柄,避免其他人員排查時出現(xiàn)困惑;后續(xù)可通過規(guī)范日志管理、明確團(tuán)隊溝通與操作流程,徹底避免此類故障再次發(fā)生。

以上就是Linux根分區(qū)爆滿(占用81%)排查與解決方案的詳細(xì)內(nèi)容,更多關(guān)于Linux根分區(qū)爆滿排查與解決的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

大厂| 云浮市| 乌兰县| 四平市| 高淳县| 平定县| 枣庄市| 凌云县| 洪泽县| 天峻县| 兴业县| 肥东县| 香格里拉县| 阿荣旗| 远安县| 广州市| 深水埗区| 施秉县| 清河县| 确山县| 万州区| 子长县| 奇台县| 临泽县| 金乡县| 开远市| 承德县| 蚌埠市| 方山县| 鲁甸县| 宝丰县| 枣庄市| 乐业县| 琼中| 和静县| 磐安县| 长汀县| 许昌县| 黔西县| 景德镇市| 青龙|