磁盤空間對于我們來講是有限的如果一起發現硬盤空間越來越大不自動釋放問題就需要進行處理一下了,下面一起來看看Linux磁盤空間不釋放問題解決辦法,希望文章對各位有用.
在工作中,我們也許會遇到這樣的問題,發現某個磁盤空間快滿了,于是,找到一些無用的大文件將其刪除后,發現磁盤空間還是沒有釋放掉,這是什么原因呢?如何解決呢?下面來重現一下整個過程.
查看磁盤空間情況:
- [@74.114 var]# df -h
- Filesystem Size Used Avail Use% Mounted on
- /dev/xvda2 9.7G 284M 8.9G 4% /
- /dev/xvda1 251M 13M 226M 6% /boot
- none 1.1G 0 1.1G 0% /dev/shm
- /dev/xvda10 97G 60G 33G 65% /home
- /dev/xvda3 3.9G 2.7G 1.1G 72% /usr
- /dev/xvda5 3.9G 3.6G 77M 98% /var
var分區快滿了,找到大文件,并刪除:
- [@74.114 var]# cd /var
- [@74.114 var]# du –sh *
- 3.3G account
- 111M cache
- 53M log
- 0 mail
- 156K run
- 344K spool
- …
- [@74.114 var]# rm –rf account/*
df –h 看一下,卻依然是/var 為98%,一點都沒釋放.
- [@74.114 var]# df -h
- Filesystem Size Used Avail Use% Mounted on
- /dev/xvda2 9.7G 284M 8.9G 4% /
- /dev/xvda1 251M 13M 226M 6% /boot
- none 1.1G 0 1.1G 0% /dev/shm
- /dev/xvda10 97G 60G 33G 65% /home
- /dev/xvda3 3.9G 2.7G 1.1G 72% /usr
- /dev/xvda5 3.9G 3.6G 77M 98% /var
但du –sh * 卻顯示沒有大文件了.
- [@74.114 ~]# cd /var && du –sh *
- 120K account
- 111M cache
- 53M log
- 0 mail
- 156K run
- 344K spool
- …
猜想1:應該是刪除的內容依然被進程占用,內存沒釋放,所以用lsof |grep – I deleted 看了一下,發現如下:
- [@74.114 account]# lsof |grep -i deleted
- listserve 4833 blty 0u CHR 136,2 4 /dev/pts/2 (deleted)
- listserve 4833 blty 1u CHR 136,2 4 /dev/pts/2 (deleted)
- listserve 4833 blty 2u CHR 136,2 4 /dev/pts/2 (deleted)
- Billing_P 16989 blty 0u CHR 136,0 2 /dev/pts/0 (deleted)
- Billing_P 16989 blty 1u CHR 136,0 2 /dev/pts/0 (deleted)
- Billing_P 16989 blty 2u CHR 136,0 2 /dev/pts/0 (deleted)
- Billing_P 16990 blty 0u CHR 136,0 2 /dev/pts/0 (deleted)
- Billing_P 16990 blty 1u CHR 136,0 2 /dev/pts/0 (deleted)
- Billing_P 16990 blty 2u CHR 136,0 2 /dev/pts/0 (deleted) //Vevb.com
發現時billing程序占用沒釋放,所以聯系項目經理將Billing_P停掉,重啟,依然沒有釋放任何空間,無果.
猜想2:刪除的文件是accout目錄下的pacct文件,應該是由psacct產生和管理,重啟這個程序后是否會OK呢?解決.
[@74.114 account]# /etc/init.d/psacct restart
最后看一下磁盤空間,磁盤空間釋放鳥~~
- [@74.114 var]# df -h
- Filesystem Size Used Avail Use% Mounted on
- /dev/xvda2 9.7G 284M 8.9G 4% /
- /dev/xvda1 251M 13M 226M 6% /boot
- none 1.1G 0 1.1G 0% /dev/shm
- /dev/xvda10 97G 60G 33G 65% /home
- /dev/xvda3 3.9G 2.7G 1.1G 72% /usr
- /dev/xvda5 3.9G 100M 3.6M 4% /var
小建議:以后處理相關問題時,如果發現du 和df 大小不一致的情況,可以通過lsof 查看,也許可以找到一些出現問題的原因,如果還是找不到問題,在允許的情況下不妨試一下重啟服務,也許問題就迎刃而解了.
重啟服務得不到解決的情況下,可以通過卸載磁盤分區來試著解決,在決定刪除某些文件前,最好確定好這個文件被哪些服務使用,先停掉這些服務再刪除,這樣就很少出現空間釋放不了的情況了.
新聞熱點
疑難解答