AIX檔案系統滿的問題分析

westzq1984發表於2009-11-25

今天一個系統的檔案系統/home滿了,讓我看
我先用du -sk看,半天沒出結果,暈,下面還掛了個oracle的home目錄
解決辦法,加個-x,只看駐留在系統裝置上的檔案 du -sxk
結果大概為5.7G

接著用df -k分析,該檔案系統大小為10G,使用100%
這種情況,一般就是檔案系統滿了後,維護人員刪除了部分大的日誌,但是並沒有停程式,程式還持有檔案inode操作的控制程式碼,其實檔案還沒有真實刪除掉
最常見的情況是對ORACLE trc目錄的處理,經常有人為我問什麼日誌清了,空間還沒釋放出來

下面確認這個檔案
fuser -d /home  任何與檔案系統(自父目錄刪除的)無連結的開啟檔案的報告,主要顯示那些程式
fuser -dV /home 提供詳細輸出,檢視相關的inode資訊

發現大量程式,並且-dV顯示出有個接近5G的檔案
用istat inode_number /dev/hd1可以看看這個檔案,確實有那麼大

接下來的工作,是找到持有控制程式碼的程式,將其KILL掉
下面是我寫的一個SHELL,作用是找到存在的使用/home目錄的控制程式碼,並過濾掉FD為cwd(當前工作目錄)的以及掛到了/home/oracle下面的另一個檔案系統
然後用awk,sed拼一個其在/proc下的檔名,具體這部分的知識,請google。我用sed過濾掉了fd列全部的字母,其實只應該過濾掉w和u。
然後使用ls -l得到檔案大小並排序
ls -l `lsof |grep /home|grep -v cwd|grep -v /home/oracle|awk '{print "/proc/"$2"/fd/"$4}'|sed 's/[a-z]$//g'`|sort +4n -r|head -n 20

下面的是我做的一個例子,但是處理問題的時候沒記錄:
etl_1/home#k '{print "/proc/"$2"/fd/"$4}'|sed 's/[a-z]$//g'`|sort +4n -r|head -n 20                                              <
--w-------   0 sctbas   staff     465907331 Nov 25 12:21 /proc/4096158/fd/1
--w-------   0 sctbas   staff     465907331 Nov 25 12:21 /proc/4096158/fd/2
--w-------   0 sctbas   staff     189402543 Nov 25 12:21 /proc/1327254/fd/1
--w-------   0 sctbas   staff     189402543 Nov 25 12:21 /proc/1327254/fd/2
-rw-------   0 perfana  perfana    41659286 May 26 2009  /proc/2613500/fd/63
-rw-------   0 perfana  perfana    41659286 May 26 2009  /proc/958694/fd/63
-rw-------   0 perfana  perfana    35317654 Jul 06 10:23 /proc/3612722/fd/63
-rw-------   0 perfana  perfana    35317654 Jul 06 10:23 /proc/5046336/fd/63
-rw-------   0 perfana  perfana    35317654 Jul 06 10:23 /proc/7876640/fd/63
-rw-------   0 perfana  perfana    33642982 Aug 07 15:52 /proc/2285712/fd/63
-rw-------   0 perfana  perfana    33642982 Aug 07 15:52 /proc/3305516/fd/63
-rw-------   0 perfana  perfana    12932624 Aug 13 16:46 /proc/6184966/fd/63
-rw-------   0 perfana  perfana    12932624 Aug 13 16:46 /proc/6504692/fd/63
-rw-------   0 perfana  perfana    12664762 Jul 14 09:59 /proc/2601066/fd/63
-rw-------   0 perfana  perfana    12664762 Jul 14 09:59 /proc/6578256/fd/63
-rw-------   0 perfana  perfana    12664762 Jul 14 09:59 /proc/8601702/fd/63
-rw-------   0 perfana  perfana     9461552 Jul 22 17:49 /proc/6049922/fd/63
-rw-------   0 perfana  perfana     7897820 Jun 16 15:43 /proc/2334766/fd/63
-rw-------   0 perfana  perfana     7897820 Jun 16 15:43 /proc/6574124/fd/63
-rw-------   0 perfana  perfana     7897820 Jun 16 15:43 /proc/8188074/fd/63

etl_1/home#istat /proc/4096158/fd/1
Inode 950374 on device 10/9     Unallocated Inode
Owner: 210(sctbas)              Group: 1(staff)
Link count:   0         Length 465912813 bytes

Last updated:   Wed Nov 25 12:24:00 2009
Last modified:  Wed Nov 25 12:24:00 2009
Last accessed:  Thu Jul 16 18:23:18 2009

etl_1/home#fuser -dV /home
/home:
inode=119567 size=331280       fd=0      389298
inode=119588 size=42586        fd=0      479318
inode=119541 size=41659286     fd=0      958694
inode=119609 size=1611650      fd=0      991462
inode=119636 size=6050450      fd=0     1003592
inode=119594 size=65448        fd=0     1007704
inode=119577 size=2427958      fd=0     1110120
inode=119592 size=47544        fd=0     1122430
inode=119559 size=5732484      fd=0     1171602
inode=119605 size=529988       fd=0     1306846
inode=950376 size=189403509    fd=0     1327254
inode=119606 size=1379796      fd=0     1421428
inode=32831  size=26680        fd=0     1691848
inode=32970  size=27790        fd=0     1888480
inode=119572 size=323626       fd=0     1933326
inode=119603 size=38000        fd=0     1937646
inode=119590 size=34762        fd=0     2011360
inode=119579 size=2341738      fd=0     2019368
inode=119608 size=4377230      fd=0     2191578
inode=119604 size=137470       fd=0     2281518
inode=119569 size=33642982     fd=0     2285712
inode=119544 size=7897820      fd=0     2334766
inode=119563 size=1454234      fd=0     2375706
inode=119565 size=12664762     fd=0     2601066
inode=119541 size=41659286     fd=0     2613500
inode=119604 size=137470       fd=0     2895922
inode=32830  size=24710        fd=0     3010624
inode=119569 size=33642982     fd=0     3305516
inode=119602 size=279516       fd=0     3535020
inode=119558 size=35317654     fd=0     3612722
inode=119601 size=73680        fd=0     3629158
inode=119614 size=71660        fd=0     3645658
inode=119587 size=29788        fd=0     3809416
inode=950374 size=465909361    fd=0     4096158
inode=119577 size=2427958      fd=0     4440252
inode=119577 size=2427958      fd=0     4599916
inode=32970  size=27790        fd=0     4677708
inode=119643 size=202270       fd=0     5038326
inode=119558 size=35317654     fd=0     5046336
inode=119593 size=93828        fd=0     5136588
inode=119597 size=92418        fd=0     5202084
inode=119586 size=665136       fd=0     5541940
inode=119599 size=165500       fd=0     5722276
inode=119589 size=114688       fd=0     5730526
inode=119608 size=4377230      fd=0     5984458
inode=119568 size=9461552      fd=0     6049922
inode=119576 size=12932624     fd=0     6184966
inode=119596 size=104854       fd=0     6267018
inode=119576 size=12932624     fd=0     6504692
inode=119544 size=7897820      fd=0     6574124
inode=119565 size=12664762     fd=0     6578256
inode=119610 size=3555838      fd=0     6828074
inode=119608 size=4377230      fd=0     6848660
inode=119555 size=237330       fd=0     6922432
inode=32970  size=27790        fd=0     7082050
inode=119595 size=140268       fd=0     7102684
inode=119605 size=529988       fd=0     7143544
inode=119591 size=415352       fd=0     7241918
inode=119566 size=244322       fd=0     7336134
inode=119558 size=35317654     fd=0     7876640
inode=119591 size=415352       fd=0     8110100
inode=119600 size=21328        fd=0     8171656
inode=119544 size=7897820      fd=0     8188074
inode=119598 size=168380       fd=0     8564962
inode=119565 size=12664762     fd=0     8601702
inode=119607 size=256176       fd=0     8777740
inode=66849  size=65536        fd=0     8786012
inode=119544 size=7897820      fd=0     9416762
inode=32970  size=27790        fd=0     10227756

這裡就可以看到,最大的檔案為/proc/4096158/fd/1,該檔案對應的inode為950374,該inode在fuser -dV的輸出中存在,是個開啟著而又被刪除的檔案
這裡的檔名/proc/4096158/fd/1,第2位4096158就是其程式ID,將其KILL掉,磁碟空間就可以釋放

另外,如果檔案沒有刪除掉,可以用ncheck來檢視inode和檔名的對應,但是刪除的情況下,好像還沒辦法找到inode和原檔案的對應關係

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8242091/viewspace-620512/,如需轉載,請註明出處,否則將追究法律責任。

相關文章