磁盤使用率大於90% 磁盤inode使用率大於90%

線上機器一直再報 磁盤使用率大於90%,發現/var/log/下邊有個mail文件,很大就直接清理掉>mail 

但是這個問題反覆出現,感覺一個沒有什麼業務的機器怎麼磁盤使用率那麼大 就查了下mail日誌文件的形成

ps 發現有好多sendmail、postdrop進程

在網上查了下他們的關係才知道

crond在執行腳本的時候會將腳本輸出信息通過調用sendmail發郵件給系統用戶,sendmail有會調用postdrop發送郵件,由於postfile服務異常郵件沒有發送成功,造成sendmail  postdrop無法正常退出

 

解決辦法:

刪除sendmail,postdrop進程,是內存降下來

ps -ef |grep 'mail'|awk -F" " '{print $2}'|xargs kill -9

ps -ef |grep 'postdrop'|awk -F" " '{print $2}'|xargs kill -9

關閉crond的郵件通知

修改/etc/crontab,/etc/cron.d/0hourly中MAILTO=root修改爲MAILTO=""

crontab -e第一行增加一段MAILTO=""

 

修改crontab -e 遇到No space left on device

df -h 發現磁盤使用沒有問題

df -i 發現/var下磁盤的inode使用量100%

find */ ! -type l | cut -d / -f 1 | uniq -c 發現/var/spool/postfix/maildrop有好多文件,這些文件就是sendmail發送失敗,堆積在maildrop中

清理掉這個目錄 發現sendmail,postdrop進程又出現了 然後重啓crond,觀察沒有再出現

df -h顯示磁盤佔用是沒有問題;但是df -i顯示磁盤inode資源佔用完。

inode譯成中文就是索引節點,每個存儲設備(例如硬盤)或存儲設備的分區被格式化爲文件系統後,應該有兩部份,一部份是inode,另一部份是Block,Block是用來存儲數據用的。而inode呢,就是用來存儲這些數據的信息,這些信息包括文件大小、屬主、歸屬的用戶組、讀寫權限等。inode爲每個文件進行信息索引,所以就有了inode的數值。操作系統根據指令,能通過inode值最快的找到相對應的文件。

這種情況的原因通常是:儘管那個分區的磁盤佔用率未滿,但是inode已經用完,應該是該磁盤的某些目錄下存在大量的小文件導致。儘管小文件佔用的磁盤空間並不大,但是數量太多,inode用盡。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章