首页 文章 精选 留言 我的

精选列表

搜索[文档处理],共10000篇文章
优秀的个人博客,低调大师

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

优秀的个人博客,低调大师

如何在MaxCompute上处理存储在OSS上的开源格式数据

0. 前言 MaxCompute作为使用最广泛的大数据平台,内部存储的数据以EB量级计算。巨大的数据存储量以及大规模计算下高性能数据读写的需求,对于MaxCompute提出了各种高要求及挑战。处在大数据时代,数据的来源多种多样,开源社区经过十几年的发展,百花齐放,各种各样的数据格式不断的出现。 我们的用户也在各个场景上,通过各种计算框架,积累了各种不同格式的数据。怎样将MaxCompute强大的计算能力开放给这些使用开源格式存储沉淀下来的数据,在MaxCompute上挖掘这些数据中的信息,是MaxCompute团队希望解决的问题。 MaxCompute 2.0最近推出的非结构化计算框架【公测阶段】,旨在从存储介质和存储格式两个维度,打通计算与存储的通道。 在之前的文章中,我们已经介绍过怎样在MaxCompute上对存储在OSS上的文本

优秀的个人博客,低调大师

关于bootstrap下拉框组件点击后不自动关闭的处理

我们在使用bootstrap下拉框组件时,有时会有如下需求,比如,下拉框中有分页的需求,如果你点击翻页时那下拉框会自动关闭,再打开下拉框又会重新刷新,这肯定是不满足条件的。所以就会有点击后不关闭的需求。这种需求实现的方法其实不难,就两个步骤: 第一步:在你需要点击后不关闭的组件的标签中加入一个属性:data-stopPropagation="true",例如: <ul class="dropdown-menu" role="menu" id="channel-menu"> <li class="divider"></li> <li id="paging"> <ul class="pagination pagination-sm" style="margin: 0 0;"> <li><a href="#" id="previous" data-stopPropagation="true" onclick="prevPage()">&laquo;</a></li> <!-- <li><a href="#" data-stopPropagation="true">1</a></li> <li><a href="#" data-stopPropagation="true">2</a></li> <li><a href="#" data-stopPropagation="true">3</a></li> <li><a href="#" data-stopPropagation="true">4</a></li> --> <li><a href="#" id="next" data-stopPropagation="true" onclick="nextPage()">&raquo;</a></li> </ul> </li> </ul> 此段代码就是一个下拉框组,在下拉框中有分页设置,在分页部分的每个标签中都添加了data-stopPropagation="true"这个属性。这只是第一步,第二步也很简单。 第二步:在js代码中注册一个监听器,监听具有这个data-stopPropagation属性的标签,点击时不关闭,代码如下: $("ul.dropdown-menu").on("click", "[data-stopPropagation]",function(e) { e.stopPropagation(); }); 这时再去尝试下发现点击后下拉框组不会自动关闭,大功告成。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册