Linux系統inodes資源耗盡問題

2022-06-06 19:51:14 字數 1591 閱讀 8921

linux系統下檔案資料儲存在"塊"中,檔案的元資訊,例如檔案的建立者、檔案的建立日期、檔案的大小等。這種儲存檔案元資訊的區域就叫做inode,中文譯名為"索引節點"。

inode也占用硬碟空間,硬碟格式化的時候,作業系統自動將硬碟分成兩個區域。乙個是資料區,存放檔案資料;另乙個是inode區(inode table),存放inode所包含的資訊。

每個inode節點的大小,一般是128位元組或256位元組。inode節點的總數,在格式化時就給定,一般是每1kb或每2kb就設定乙個inode。假定在一塊1gb的硬碟中,每個inode節點的大小為128位元組,每1kb就設定乙個inode,那麼inode table的大小就會達到128mb,佔整塊硬碟的12.8%。

inodes使用完與儲存空間使用完相似,都是建立不了檔案或無法正常執行一些命令。inodes使用完,儲存空間可能還有,這種情況一般是生成了大量的小檔案,把inode table佔滿。

一般情況下儲存空間使用完,inodes往往才使用百分之幾,所以容易忽視對inodes使用情況的監控。

檢視inodess使用情況,使用df -i命令

上述兩個命令可以使用-h引數,命令為df -h和df -hi。從圖中看見磁碟空間使用71%,但是inodes使用100%。

linux作業系統根目錄一般分割槽比較小,如果有定時性的小檔案產生而又未及時清理,則很容易造成inodes佔滿。

(1)檢視檔案最多的目錄

for i in /*; do echo $i; find $i | wc -l; done

如果確定目錄範圍,把/*寫的具體點

最終發現是/var/spool/postfix/maildrop目錄下小檔案過多,原因如下:由於linux在執行cron時,會將cron執行指令碼中的output和warning資訊,都會以郵件的形式傳送給cron所有者。由於客戶環境中的sendmail和postfix沒有正常執行,郵件傳送不成功,導致全部小檔案都堆積在maildrop目錄下,另由於缺乏自動清理的機制,故此目錄下堆積了大量的檔案。

經過排查root使用者下發現有個每分鐘進行一次時鐘同步的定時任務,該定時任務每分鐘產生乙個小檔案。

(2)刪除大量檔案

ls | xargs -n 1000 rm -rf 需要使用xargs命令,不然會刪除失敗。  

(1)設定方面在crontab -e 第一行增加mailto="" ,就沒有檔案產生啦

*/10 * * * * /tmp/test.sh >/dev/null 2>&1

(3)定時清理檔案

find 目錄 -type f -mtime +30 | xargs -n 1000 rm -f**

(4)監控inodes的使

自製linux系統 LFS 資源

乙個很不錯的的lfs論談專區,對於新手非常有幫助,製作中出現的問題,可以搜搜前人走過的路 孫海勇的 手把手教你如何建立自己的linux系統 第二版 完全可以根據這個手冊製作出乙個成型的linux系統,在編譯所要原始碼時,需要輸入很多指令碼,可一定要仔細檢查輸入的指令碼,一步輸錯可將對後面編譯造無法挽...

Linux系統資源檢視

1.vmstat命令監控系統資源 vmstat 重新整理延時 重新整理次數 root better vmstat 1 3 procs memory swap io system cpu r b swpd free buff cache si so bi bo in cs us sy id wa st...

linux系統資源監控

如何檢視linux支援哪些命令 連按兩次tab鍵 top 作為乙個廣為人知的linux工具,top是大多數的類 unix 作業系統任務管理器。它可以顯示當前正在執行的程序的列表,使用者可以按照不同的條件對該列表進行排序。它主要顯示了系統程序對cpu和記憶體的使用狀況。top可以快速檢查是哪個或哪幾個...