Pimp rsyslogd 以減少 i/o(cron、pam、…)和更少的日誌記錄
在我的覆盆子上,我真的不需要 crons 和 pam 日誌記錄,我希望減少 i/o 以延長 SD 卡的使用壽命。
我已經用第二行刪除了 cron
cron.none
,我目前正在測試authpriv.none
auth,authpriv.* /var/log/auth.log *.*;auth,authpriv.none,cron.none -/var/log/syslog #cron.* /var/log/cron.log daemon.* -/var/log/daemon.log kern.* -/var/log/kern.log lpr.* -/var/log/lpr.log mail.* -/var/log/mail.log user.* -/var/log/user.log
基本上,我只想記錄致命事件、硬體問題、核心/dmesg 和登錄失敗
我還能改進什麼?
這不是您要尋找的答案,因為我將嘗試勸阻您(這實際上是唯一合理的答案)。
在我的覆盆子上,我真的不需要 crons 和 pam 日誌記錄,我希望減少 i/o 以延長 SD 卡的使用壽命。
如果您認為 cron 確實在進行過多的日誌記錄,那麼您應該考慮 cron 在做什麼以及頻率,並對其進行調整。重點是,如果您不太關心它在做什麼,那麼它為什麼要這樣做?
WRT SD 卡,日誌記錄不夠重要,無需擔心。如:完全無關緊要,你在浪費時間思考它。SD卡使用磨損均衡來幫助保護自己:它們不會受到碎片的影響(即碎片與性能無關),並且當您寫入磁碟時,數據會寫入卡中使用最少的部分,無論何時那是。這超越了分區邊界,因此如果您在 16GB 卡上有一個 2GB 分區,則該分區不限於 2GB 寬的物理地址塊:它是一個動態的 2GB,其物理地址將是一個不連續的、不斷變化的列表涵蓋整張卡片。
如果您的系統每天寫入 1 MB 的日誌(您可以通過將所有內容的副本發送到一個文件來檢查這一點,通常
/var/log/syslog
是這樣),並且您有一張 4 GB 的卡,那麼這樣一個週期需要 4000 天一次寫入整個卡。SD 卡的實際壽命可能高達100,000 次寫入周期$$ but see comments $$. 所以所有的記錄都會在 4000 * 100000 / 365 = ~ 100 萬年
您現在明白為什麼將日誌記錄減少 25%、50% 甚至 99% 將完全無關緊要嗎?即使該卡在寫入周期方面的使用壽命非常糟糕——比如 100 次——你仍然會在幾個世紀的時間內退出它。有關此原理的更深入測試展示,請參見此處。
基本上,我只想記錄致命事件、硬體問題、核心/dmesg 和登錄失敗
除非您啟用“調試”級別的日誌記錄,否則到目前為止,寫入日誌最多的事情是發生真正錯誤的情況,並且通常除非您完全禁用日誌記錄,否則這些內容將作為高優先級進入。例如,我懷疑在正常情況下,您的 pi 使用預設的 raspbian 配置每天寫入 1 MB 的日誌,即使它是 24/7 的。讓我們把它四捨五入。現在假設一個有缺陷的核心模組每秒 50 次向無人值守系統上的 syslog 寫入相同的 100 字節“緊急”緊急消息,持續一周:100 * 50 * 60 * 60 * 24 * 7 = ~ 30 MB。考慮到上述卡的生命週期,以及您可能想要獲取消息的事實。
順便說一句,記錄這種混亂是非常不尋常的。日誌記錄很好。日誌是你的朋友。如果您想修改 rsyslog 配置,您的時間最好花在添加更多而不是更少上。