您好,登錄后才能下訂單哦!
前言
本文源自作者在蘇寧科技集團云平臺工作期間的部分工作記錄文檔,先轉到public ,希望能幫到有類似問題的同行
1、? 問題描述
/var/log/sa目錄是sysstat 安裝包的一部分。問題目標機缺失了該目錄,當crond 發起的定時任務執行/usr/lib64/sa/sa1訪問目錄不到報錯,會生成mail文件置于/var/spool/postfix/maildrop/,長時間后 /var 目錄空間滿了之后,導致postdrop 進程阻塞堆積數量多,占用系統資源。
?
?
癥狀2
后來發現另一個癥狀,root 用戶登錄時推測有某種消費這些mail 的機制,/var/spool/postfix/maildrop/? 如果已經有了文件堆積,會導致登錄bash 的 cpu 和內存 消耗很大
?
?
2、? 場景復現
1)?????? 用一臺虛擬機做測試,該cron文件位于/etc/cron.d/
?
/usr/lib64/sa/sa1為每10分鐘執行一次
?
為了盡快復現,調整為1分鐘執行一次
?
2)?????? 刪除/var/log/sa文件夾
rm –Rf? /var/log/sa
3)?????? 用dd命令占用var空間到接近100%
?
4)?????? 由于沒有硬盤空間可用,會阻塞大量的sendmail進程和postdrop進程
?
?
?
當出現找不到sa1文件后,sendmail進程會發消息,并記錄到/var/mail/root文件
當磁盤空間不足時候,無法寫入導致sendmail被阻塞,會調用postdrop進程將消息丟到/var/spool/postfix/maildrop/文件夾里:
但是磁盤空間不足同樣會阻塞postdrop,所以直觀表現就是產生大量postdrop和sendmail掛在那。
5) 清除掉var目錄下的一部分文件,產生可用磁盤空間,sendmail和postdrop進程會立即解除阻塞狀態,postdrop進程全部結束。
?
?
?3、? 解決方法
1)?????? 清除var目錄下部分文件,釋放磁盤空間
2)?????? 恢復sa文件夾,避免不斷sendmail和postdrop
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。