當前位置:
首頁 > 知識 > Facebook 開源內存溢出殺手 oomd

Facebook 開源內存溢出殺手 oomd

近日,在 Facebook 的網站上,該公司的 Daniel Xu 宣布在 GPLv2 許可證下開源 oomd。oomd 是用戶空間內存溢出殺手(OOM Killer),它在最近關於塊 I/O 延遲控制器的文章中有被提及到。當內存不足時,內存溢出殺手會殺掉一些進程,它的主要任務是保護內核,因此應用程序可能會受到影響。

相比傳統的 Linux 內存溢出殺手,oomd 會全面監視系統,評估系統是否處於不可恢復的工作負荷下。在系統的 OOM Killer 作用前,oomd 會在用戶空間採取糾正措施。

Facebook 表示,它們的基礎設施已經發展到包含新聞信息流、Messenger、Instagram、WhatsApp、Oculus以及其他一系列產品。這些產品和它們背後的系統運行於分布在多個地理分散式數據中心的數百萬台伺服器上。隨著基礎設施規模不斷擴大,Facebook 的機器和網路越來越多地跨越多代,這種多代生產環境的一個副作用是新的軟體版本或配置更改可能導致系統在一台計算機上運行正常但在另一台計算機上遇到內存溢出(OOM)問題。傳統的 Linux 內存溢出殺手在某些情況下運行良好,但在其他情況下,它啟動得太晚,導致系統進入不確定時期的活鎖。

因此 Facebook 開發了oomd,一種更快、更可靠的解決方案,用於常見的內存溢出(OOM)情況,它可以在用戶空間而不是內核空間中運行。Facebook 設計的 oomd 包含兩個關鍵特性:pre-OOM鉤子(pre-OOM hooks)和自定義插件系統。在工作負載受到威脅之前,pre-OOM鉤子提供了對 OOM 的可見性。由於 OOM 檢測標準可能因工作負載而異,因此插件系統支持對檢測和進程終止策略進行自定義。

與用於內核空間內存溢出殺手的一些對比

結論

oomd 是新型的用戶空間內存溢出殺手(OOM Killer),允許應用程序開發者在工作負載消耗所有可用系統內存時自定義響應。Facebook 表示,他們的測試表明 oomd 是默認 Linux 內核內存溢出殺手的可靠而有效的替代品。他們已經在 Facebook 開發並部署了 oomd,發現它使自家的公司能夠減少從構建伺服器到機架交換機到共享計算資源的工作負載頻率。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Linux資訊速推 的精彩文章:

雲計算數據採集與網路取證分析
Intel處理器又雙叒叕曝漏洞:價值10萬美元

TAG:Linux資訊速推 |