APP下载
报价宝  ›  综合  › 

内存不够怎么办? 脸书开源内部解决方案Oomd

报价宝 来源:baojiabao.com 发布时间:2019-01-22 18:34:00 11月07日更新
报价宝综合消息内存不够怎么办? 脸书开源内部解决方案Oomd

脸书(Facebook)开源内部用来解决内存不足(Out-Of-Memory,OOM)的解决方案Oomd,脸书提到,随着服务发展而扩建的生产环境,由于规格不同,造成软件在部分的机器上运作,会有内存空间不足的情况发生。Oomd可以在用户空间而非核心空间,综合PSI工具与Cgroup2机制两种方法,解决内存不足的问题。

脸书现在已有超过22亿用户,而其基础架构设施也扩展支撑著新闻、Messenger、Instagram、WhatsApp以及Oculus等其他产品,这些产品散布在各地区的分散式资料中心的数百万台服务器中,脸书生产工程师DANIEL XU提到,由于基础架构设施规模不断的扩展,因此机器与网络设备也横跨越来越多代,多代生产环境的缺点便是,同一个软件在不同规格的机器上运作状况不相同。

部分软件在大部分的机器上运作正常,却在某部分的机器上会发生内存不足的情况,DANIEL XU提到,脸书在机器上使用Linux操作系统,而Linux操作系统上用来解决内存不足的机制,虽然在多数情况运作良好,但是在部分情况介入太迟,有机会造成Livelock的现象。

因此脸书开发了Oomd来解决常见的内存不足情况,这个解决方案不只更快更可靠,他的一大特色便是能在使用者空间而非核心空间运作,另外,Oomd提供了Pre-OOM Hooks,能提早察觉到工作负载内存不足的威胁,而其提供的套件系统,能让使用者指定自订义的政策,以解决不同主机的工作负载运作状况。

DANIEL XU提到,他们为了要提高内存的使用效率,通常会让程序分配的内存多于系统可用内存的容量,这种内存配置策略,基于应用程序并不需要所有已分配内存的假设。但这种假设并非总是成立,因此当内存需求超过总量时,Linux OOM杀手便会启动,并试图回收内存以确保系统正常运作,但是由于这个机制不分工作负载的重要性,因此当OOM杀手介入可能错杀重要程序,增加应用程序运作的风险。

Oomd解决方案由两个关键组成,第一则是PSI(Pressure Stall Information),这是新的公用工具,用来追踪三项系统资源CPU、内存与I/O,并提供这些资源的时间轴视图。PSI部署在生产环境时,其指标可以用来作为追踪资源短缺工具,允许在使用者空间根据需求,主动采取必要措施。另一个关键则是Cgroup2,这是Linux核心机制,能以分层的方式组织程序,并以可控与可配置的方法,以阶层结构配置系统资源。Oomd利用Cgroup2的机制来确保每一个工作负载都运作得当。

Oomd能以更全面的方式监控系统资源,而不像Linux OOM杀手仅关注核心问题,但也由于内存不足的检测标准会因任务不同而不同,因此才需要外挂系统来对特殊情形制定客制化政策。Oomd中有一个顺序列表,上面记录着可以优先结束的程序,当某些条件成立时,Oomd便会优先结束这些程序或是服务。

经过实验证明,他们即便让程序重复地大量请求内存,Oomd依然能够维持高效率配置内存,比起预设的Linux核心OOM杀手更加可靠快速。脸书已经大规模在服务器上部署Oomd,发现从服务器到交换器,都能有效分配运算资源,并减少在工作负载上发生Livelock的频率。

文章标签: 报价宝 降噪耳机价格 耳机价格 红米手机价格 华为手机价格 小米手机价格 电视机价格 笔记本电脑价格 笔记本价格 汽车价格 报价宝 电视机价格 华为手机价格 红米手机价格 耳机价格