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,发现它使自家的公司能够减少从构建服务器到机架交换机到共享计算资源的工作负载频率。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

对话张冬洪 | 全面解读NoSQL数据库Redis的核心技术与应用实践

互联网和Web的蓬勃发展正在改变着我们的世界,随着互联网的不断发展和壮大,企业数据规模越来越大,并发量越来越高,关系数据库无法应对新的负载压力,随着Hadoop...

3635
来自专栏JAVA高级架构

深入浅出 RPC - 浅出篇

近几年的项目中,服务化和微服务化渐渐成为中大型分布式系统架构的主流方式,而 RPC 在其中扮演着关键的作用。在平时的日常开发中我们都在隐式或显式的使用 RPC,...

1263
来自专栏云加头条

黄荣奎:腾讯云微信小程序解决方案

本文介绍小程序在腾讯云上的解决方案,如何快速帮助开发者快速完成开发和上线。

3.9K20
来自专栏机器学习算法与Python学习

最新Python学习项目Top10!

过去一个月里,我们对近1000个Python 学习项目进行了排名,并挑选出热度前10的项目。这份清单涵盖了包括Web App, Geospatial Data,...

1062
来自专栏服务端技术杂谈

重构系统的套路-提高并发能力

比如我们在某段业务逻辑中加了一个同步写kafka的操作,tp99瞬间多了30毫秒,这样在整个监控曲线看起来非常扎眼,于是我们需要将这个同步改成异步。

902
来自专栏开源项目

码云团队如何使用码云?

1854
来自专栏SEO

Google新动作:处理重复内容

32910
来自专栏H2Cloud

H2Engine服务器引擎介绍

H2Engine服务器引擎介绍 简介   H2Engine服务器引擎架构是轻量级的,与其说是引擎,个人觉得称之为平台更为合适。因为它封装的功能非常精简,但是提供...

5738
来自专栏云计算

云计算领域中你需要知道的 52 个术语

你觉得你已经对云服务的所有东西了如指掌了吗?那么,来看一下这份由云服务相关的术语、短语、工具和服务提供商组成的列表来确保你确实做到了这一点吧。

2919
来自专栏北京马哥教育

游族网络运维总监:如何运维千台以上游戏云服务器

? 作者:李志勇 来源: http://www.csdn.net/article/2016-03-21/2826611 偶然在网上看到游族网络运维总监李志勇先...

6248

扫码关注云+社区

领取腾讯云代金券