您现在的位置是:主页 > 数据库技术 > 数据库技术

job和task的概念是什么

IDCBT2022-01-12服务器技术人已围观

简介这篇文章主要介绍了job和task的概念是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇job和task的概念是什么文章都会有所收获,下面我们一起来

这篇文章主要介绍了job和task的概念是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇job和task的概念是什么文章都会有所收获,下面我们一起来看看吧。

1. 简介

集群管理系统我们内部叫Borg,它管理、调度、开始、重启和监控谷歌运行的应用程序的生命周期。本文介绍它是怎么做到这些的。

Borg提供了三个主要的好处:它(1)隐藏资源管理和故障处理细节,使其用户可以专注于应用开发;(2)高可靠性和高可用性的操作,并支持应用程序做到高可靠高可用;(3)让我们在跨数以万计的机器上有效运行。Borg不是第一个来解决这些问题的系统,但它是在这个规模,这种程度的弹性和完整性下运行的为数不多的几个系统之一。

本文围绕这些主题来编写,包括了我们在生产环境运行十年的一些功力。

2.用户视角

Borg的用户是谷歌开发人员和系统管理员(网站可靠性工程师 SRE),他们运行谷歌应用与服务。用户以job的方式提交他们的工作给Borg,job由一个或多个task组成,每个task含有同样的二进制程序。一个job在一个Borg的Cell里面跑,一个Cell是包括了多台机器的单元。这一节主要讲用户视角下的Borg系统。

2.1 工作负载

Borg Cell主要运行两种异构的工作负载。第一种是长期的服务,应该“永远”运行下去,并处理短时间的敏感请求(几微秒到几百毫秒)。这种服务是面向终端用户的产品如Gmail、Google Docs、网页搜索,内部基础设施服务(例如,Bigtable)。第二种是批处理任务,需要几秒到几天来完成,对短期性能波动不敏感。在一个Cell上混合运行了这两种负载,取决于他们的主要租户(比如说,有些Cell就是专门用来跑密集的批处理任务的)。工作负载也随着时间会产生变化:批处理任务做完就好,终端用户服务的负载是以每天为周期的。Borg需要把这两种情况都处理好。

Borg有一个2011年5月的负载数据[80],已经被广泛的分析了[68,26,27,57,1]。

最近几年,很多应用框架是搭建在Borg上的,包括我们内部的MapReduce[23]、flumejava[18]、Millwheel[3]、Pregel[59]。这中间的大部分都是有一个控制器,可以提交job。前2个框架类似于YARN的应用管理器[76]。我们的分布式存储系统,例如GFS[34]和他的后继者CFS、Bigtable[19]、Megastore[8]都是跑在Borg上的。

在这篇文章里面,我们把高优先级的Borg的jobs定义为生产(prod),剩下的是非生产的(non-prod)。大多长期服务是prod的,大部分批处理任务是non-prod的。在一个典型的Cell里面,prod job分配了70%的CPU资源然后实际用了60%;分配了55%的内存资源然后实际用了85%。在$5.5会展示分配和实际值的差是很重要的。

2.2 集群和Cell

标签:

很赞哦! ()

本栏推荐