systemd 專案開發人員已經開始研究並修復「systemd-journald」元件中長期存在的架構問題,該問題導致寫入磁碟的資料量(寫入放大)遠高於日誌的實際量。
事情可以追溯到 2020 年 3 月,當時有人在 bug 追蹤系統中提交了一份報告,指出產生大約 500 KB 的文字日誌會導致 SSD 上超過 700 MB 的實體寫入操作。 systemd 的開發者斷然否認了這個問題,並回應說“你不懂文件系統的工作原理”,拒絕進行性能分析,最終以“無法處理”為由關閉了該工單。開發者的回覆遭到了數百名用戶的反對,但專案方的立場依然堅定。
2026 年初,提交了第二份問題報告。在報告中,獨立開發者 ValdikSS 使用隔離的 cgroup 和 loop 設備進行了詳細的效能分析,清楚地展示了問題發生的機制:由於使用了記憶體映射檔案 (mmap) 和二進位雜湊表,即使寫入 750 位元組的文字訊息也會導致記憶體指紋的修改,從而導致整個 4 千位元組的頁面被刷新到裝置到磁碟區的 I /B 區。
繼昨天 Hacker News 首頁報導和無可辯駁的合成測試發布之後,該項目的維護者改變了他們的措辭,並開始致力於優化 journald 的緩存刷新機制和索引存儲結構。
來源: opennet.ru
