java 写文件 异常 磁盘空间满_系统磁盘空间满的一个问题
我們的集成環(huán)境如果磁盤(pán)空間滿,一般情況下可以通過(guò)刪除log或者多余的文件來(lái)解決,但有時(shí)候,這種方法是無(wú)法解決的。以上次碰到情況為例:
服務(wù)器10.2.5.4磁盤(pán)空間滿,致使某核心無(wú)法正常運(yùn)行。于是登陸核查,如下:
# df -h
文件系統(tǒng)????????????? 容量? 已用 可用 已用% 掛載點(diǎn)
/dev/sda2 9.7G 7.0G 2.3G 76% /
/dev/sda1 251M 19M 219M 8% /boot
/dev/sda5 54G 24G 28G 100% /home
none 1004M 0 1004M 0% /dev/shm
ccvob.alipay.net:/ccvob1
133G 68G 59G 54% /ccvob1
10.2.4.98:/home/nfsshare
225G 145G 69G 68% /share/upload
進(jìn)入/home目錄使用du查看/home下的磁盤(pán)使用率
# cd /home
# du -sh *
3.1M admin
1.3G ctu
1.2G godzilla
76K log
40K nagios
609M paygw
784M smsgw
20G trade
24K ukulele
發(fā)現(xiàn)目錄home目錄下的子目錄所有文件大小加起來(lái)遠(yuǎn)遠(yuǎn)少于54G,可是卻提示home已經(jīng)100%占用。這種干擾du查看磁盤(pán)空間使用率的問(wèn)題,一般是下面兩種情況造成的:
1、用戶刪除了文件,這些刪除的文件使用du無(wú)法查看,但系統(tǒng)仍然有進(jìn)程在寫(xiě)被刪除的文件。
2、磁盤(pán)分區(qū)的某一個(gè)目錄掛載了另外一個(gè)分區(qū)時(shí),du查看到的磁盤(pán)空間為掛載分區(qū)后的目錄空間。
由于home目錄未掛載另一分區(qū),所以應(yīng)該是用戶刪除系統(tǒng)的日志文件,而系統(tǒng)java進(jìn)程沒(méi)被停掉這一情況造成的。
解決方法:
1、查找被刪除文件
被刪除文件,在寫(xiě)程序未退出的情況下,被刪除文件同樣會(huì)占用磁盤(pán)空間。
# lsof -n | head -1
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
# lsof -n /home | grep deleted
由上面可以看出,這些log已經(jīng)被刪除,但是java進(jìn)程依然在寫(xiě)這些log。
2、殺掉寫(xiě)文件的java進(jìn)程,磁盤(pán)空間會(huì)自然釋放
#pkill -9 19543
# df
文件系統(tǒng)?????????????? 1K-塊??????? 已用???? 可用 已用% 掛載點(diǎn)
/dev/sda2 10080520 7257740 2310712 76% /
/dev/sda1 256667 19223 224192 8% /boot
/dev/sda5 56087900 25093392 28145384 45% /home
總結(jié):由于我們經(jīng)常在沒(méi)有停掉系統(tǒng)的時(shí)候就直接刪除log,而有時(shí)候系統(tǒng)的java進(jìn)程在重新啟動(dòng)的時(shí)候并沒(méi)有停掉,依然在系統(tǒng)中運(yùn)行并不停的在寫(xiě)已經(jīng)被刪除的日志文件,多次累積過(guò)后,就會(huì)造成磁盤(pán)空間變滿。所以,建議每次刪除系統(tǒng)log前,請(qǐng)執(zhí)行下#killall java 先將該用戶下的系統(tǒng)停掉
總結(jié)
以上是生活随笔為你收集整理的java 写文件 异常 磁盘空间满_系统磁盘空间满的一个问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java 配置信息_[Java教程]ja
- 下一篇: java关键字及其作用解释_java 常