史无前例开放!阿里内部集群管理系统Sigma混布数据

互联网普及的20年来,尤其是近10年移动互联网、互联网+的浪潮,使互联网技术渗透到各行各业,渗透到人们生活的方方面面,这带来了互联网服务规模和数据规模的大幅增长。日益增长的服务规模和数据规模带来数据中心的急剧膨胀。在大规模的数据中心中,传统的运维方式已经不能满足规模化的需求,于是基于自动化调度的集群管理系统纷纷涌现。

这些系统往往有一个共同的目标,就是提高数据中心的机器利用率。在庞大的数据中心服务器规模下,平均利用率每提高一点,就会带来非常可观的成本节约。这一点我们可以通过一个简单的计算来感受一下。假设数据中心有N台服务器,利用率从R1提高到R2,能节约多少台机器?不考虑其他实际制约因素的情况下,假设能节约X台,那么我们有理想的公式:

      NR1 = (N-X)R2
=>  XR2 = NR2 – N*R1
=>         X = N*(R2-R1)/R2

如果我们有10万台服务器,利用率从28%提升到40%,那么代入上述公式有:


N= 100000(台),
R1 = 28%,
R2 = 40%
X=100000* (40-28)/40 = 30000(台)

也就是说10万台服务器,利用率从28%提升到40%,就能节省出3万台机器。假设一台机器的成本为2万元,那么节约的成本就有6个亿。

但是遗憾的是,根据盖特纳和麦肯锡前几年的调研数据,全球的服务器利用率并不高,只有6%到12%。即使通过虚拟化技术优化,利用率还是只有7%-17%;这正是传统运维和粗放的资源使用模式带来的最大问题。调度系统的主要目标就是解决这个问题。

通过资源的精细化调度,以及虚拟化的手段,比如Virtual Machine或容器技术,让不同服务共享资源,堆叠高密部署,可以有效的提升资源利用率。但是这种模式对在线业务的应用上存在瓶颈。因为在线业务间的资源共享,高密部署会带来各个层面的资源使用竞争,从而增加在线服务的延迟,尤其是长尾请求的延迟。

对于在线业务来说,延迟的增加往往立刻反应到用户的流失和收入的下降,这是在线业务无法接受的。而近年来随着大数据的普及,对实时性要求并不高的批量离线作业规模越来越大,在资源使用上,逐渐和在线业务的体量相当,甚至超过了在线业务。于是很自然想到,将离线业务和在线业务混合部署在一起运行会怎样?能否在牺牲一些离线作业延迟的情况下,充分利用机器资源,又不影响在线的响应时间?

阿里巴巴从15年开始做了这个尝试。在这之前,阿里内部针对离线和在线场景,分别各有一套调度系统: 从10年开始建设的基于进程的离线资源调度系统Fuxi(伏羲),和从11年开始建设的基于Pouch容器的在线资源调度系统Sigma。 从15年开始,我们尝试将延迟不敏感的批量离线计算任务和延迟敏感的在线服务部署到同一批机器上运行,让在线服务用不完的资源充分被离线使用以提高机器的整体利用率。

这个方案经过2年多的试验论证、架构调整和资源隔离优化,目前已经走向大规模生产,并已服务于电商核心应用和大数据计算服务ODPS业务。混布之后在线机器的平均资源利用率从之前的10%左右提高到了现在的40%以上,并且同时保证了在线服务的SLO目标。

我们了解到,近年来解决资源调度和集群管理领域特定问题的学术研究也在蓬勃发展。但是考虑到学术研究和实际真实的生产环境还是存在很大差异。首先是用于学术研究的机器规模都相对较小,可能无法暴露出实际生产规模的问题;其次是学术研究中所用的数据往往不是实际生产环境产生的,可能会对研究的准确性和全面性产生影响。

因此我们希望将这个阿里内部核心混布集群的数据开放出来,供学术界研究。希望学术界能在有一定规模的真实生产环境数据中,寻找到资源调度和集群管理更好的模式和方法,能够指导优化实际生产场景,将机器利用率和服务质量提高到一个更高的水平。我们一期先开放1000台服务器12个小时的数据。

数据格式描述和数据下载链接放在了github工程中,欢迎查阅:https://github.com/alibaba/clusterdata

有任何问题和建议可以通过邮件反馈给我们:
alibaba-clusterdata@list.alibaba-inc.com

来源:阿里技术
原文链接

时间: 2025-01-02 05:46:14

史无前例开放!阿里内部集群管理系统Sigma混布数据的相关文章

[EWS系列分享]容器集群管理系统模型杂谈

前记     在开始动手设计EWS(即TAE3.0)之时, 我们参考了诸如swarm, kubernetes, mesos, yarn等众多与容器集群管理相关的系统或者设计思路, 当然最为**惊艳**的莫过于kubernetes了.考虑到历史数据及公司特有的网络, 运维环境, EWS不可能完全抛弃原有的数据模型而使用全新的设计或者说直接建立在诸如kubernetes上(感谢上帝我做了一个非常明确的决定!).     时至今日, kubernetes也刚刚发布了1.2版本, 一大波特性袭来. 在简

开源容器集群管理系统Kubernetes架构及组件介绍

Together we will ensure that Kubernetes is a strong and open container management framework for any application and in any environment, whether in a private, public or hybrid cloud. --Urs Hölzle, Google Kubernetes 作为Docker生态圈中重要一员,是Google多年大规模容器管理技术的

阿里Hadoop集群架构及服务体系

阿里Hadoop集群架构及服务体系 梁李印   阿里巴巴集团-海量数据 1.集群发展现状 2.集群服务模式及挑战 3.Hadoop版本特性 4.集群用户门户 5.集群核心业务架构 temp_12121008097521.pdf

大数据-hdoop集群下各hbase的数据是一样的吗?

问题描述 hdoop集群下各hbase的数据是一样的吗? 场景:要把全国31个省的数据从原来的oracle数据库导入到现在的hadoop集群,采用大数据以提高效率. 现在的环境是10台机器,Hadoop集群 问题是Hadoop集群的工作原理是怎样的?是把31个省的数据都导入每台机器的hbase还是每台机器的hbase导几个省,总共是31个省?怎么保证效率? 不懂吖 刚接触. 解决方案 10台机器的hadoop集群上配置hbase 分表空间 导入数据就可以了 都说了是集群了 所以10台用的是一份数

用集群脚本功能让2.0.0及之前版本的包月集群presto支持读取oss数据

参照 集群脚本功能介绍,本文介绍如何用集群脚本功能让2.0.0及之前版本的包月集群presto支持读取oss数据. 准备脚本 下载 脚本,放在您的oss合适的目录里. 运行脚本 集群列表页面点击对应集群的查看详情按钮 左侧菜单单击集群脚本,进入该集群的集群脚本执行界面 单击右上角创建并执行,进入创建界面. 选择刚才的脚本,设置名字,执行的节点默认,点击执行,完成添加并执行操作. 集群脚本列表可以看到新创建的集群脚本,点击刷新可以更新集群脚本的状态. 等待集群脚本完成 验证 hive建表 下文举了

在Hadoop集群下的智能电网数据云仓库设计

在Hadoop集群下的智能电网数据云仓库设计 郑柏恒 孟文 易东 梁晓波 针对电网数据规模大.类型多.价值密度小.变化速度快.地理位置离散的特点,为了对这些数据进行有效.可靠.低廉地存储以及快速地访问与分析,满足智能电网运行.检修.效益管理等应用的需求,提出了在Hadoop廉价PC机集群下的智能电网数据云仓库的解决方案,为挖掘海量电网数据提供有效.可靠.低廉的工具.首先分析了电网大数据的特点,再结合IEC61970标准通用信息模型的特点,基于Hadoop框架,设计出满足电网大数据处理需求的电力信

集群管理系统Saltstack的资源配置及性能测试

SaltStack是继 Puppet.Chef 之后新出现的配置管理及远程执行工具, 目前,SaltStack 正得到越来越多的瞩目. 与 Puppet 相比,SaltStack 没有那么笨重,感觉较为轻量:不像 Puppet 有 一套自己的 DSL 用来写配置,SaltStack 使用 YAML 作为配置文件格式,写 起来既简单又容易,同时也便于动态生成:此外,SaltStack 在远程执行命令 时的速度非常快,也包含丰富的模块. SaltStack 是开源软件,其源代码托管于 GitHub

在Liberty集群中共享内存网格数据搭建高可用性环境

Liberty 是一款全新的轻量级http://www.aliyun.com/zixun/aggregation/15818.html">应用服务器, 具有以下几个方面的特点: 高模块化--该功能允许用户根据自己应用程序的需求启用或者禁用相关的 feature( 所谓 feature,在这里指的是运行应用程序所需要的各种资源的支持.比如,应用程序用到了 JSP,我们就需要启动 JSP 这个 feature,如果不在需要此 feature,就可以将其禁用.通过这种模块化的控制,我们可以按需启

在阿里云上部署生产级别Kubernetes集群

阿里云是国内非常受欢迎的基础云平台,随着Kubernetes的普及,越来越多的企业开始筹划在阿里云上部署自己的Kubernetes集群.本文将结合实战中总结的经验,分析和归纳一套在阿里云上部署生产级别Kubernetes集群的方法.文中所采取的技术方案具有一定的主观性,供各位读者参考.在实践中可以根据具体使用场景进行优化. 目标 当我们刚接触Kubernetes进行测试集群的搭建时,往往会选择一篇已有的教程,照着教程完成集群搭建.我们很少去质疑教程作者每一步操作的合理性,只想快点把集群搭建起来,