Facebook 开源 oomd,一种处理内存溢出的新方法

栏目: IT资讯 · 发布时间: 5年前

内容简介:近日,在 Facebook 的网站上,该公司的 Daniel Xu 宣布在 GPLv2 许可证下开源 oomd。oomd 是用户空间内存溢出杀手(OOM Killer),它在最近关于块 I/O 延迟控制器的文章中有被提及到。当内存不足时,内存溢出杀手会...

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 检测标准可能因工作负载而异,因此插件系统支持对检测和进程终止策略进行自定义。

与用于内核空间内存溢出杀手的一些对比

Facebook 开源 oomd,一种处理内存溢出的新方法

Facebook 开源 oomd,一种处理内存溢出的新方法

Facebook 开源 oomd,一种处理内存溢出的新方法

结论

oomd 是新型的用户空间内存溢出杀手(OOM Killer),允许应用程序开发者在工作负载消耗所有可用系统内存时自定义响应。Facebook 表示,他们的测试表明 oomd 是默认 Linux 内核内存溢出杀手的可靠而有效的替代品。他们已经在 Facebook 开发并部署了 oomd,发现它使自家的公司能够减少从构建服务器到机架交换机到共享计算资源的工作负载频率。


【声明】文章转载自:开源中国社区 [http://www.oschina.net]


以上所述就是小编给大家介绍的《Facebook 开源 oomd,一种处理内存溢出的新方法》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Swift语言实战入门

Swift语言实战入门

伍星、罗飞、刘志华、王浩力、刘蕾 / 人民邮电出版社 / 2014-10-23 / 79

《Swift语言实战入门》以Swift语言的基础知识和实战技巧为主要内容,佐以大量的实例和图片进行讲解。全书内容分为三大部分,共11章节。第一大部分讲述Swift语言的基础知识和语法,第二大部分讲解开发框架和库的相关内容,第三大部分集中讲解以2048游戏为例的实战演练,从入门到实战层层递进。本书注重实战,秉承着学以致用的原则,让读者真正看后能够实际操作。120个代码清单全部共享,配套教学视频在线收......一起来看看 《Swift语言实战入门》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

html转js在线工具
html转js在线工具

html转js在线工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试