过载

来源:互联网 发布:sql数据修复 编辑:程序博客网 时间:2024/04/29 09:25

产生背景

为了应对峰值负荷以及一些想象不到的负载峰值,高优先级的面向用户的服务会置备在大型集群上。因此,大多数时间,资源没有得到充分的利用。过载会激发暂时没有使用的资源来最大限度的执行任务,比如背景分析,视频/图像处理,芯片仿真,以及其他低优先级的工作,当资源被征用,这些任务可以被随时撤销。尝试在可撤销的资源上启动 tasks/executors,当资源被节流或抢占,Mesos 可以随时撤销任务。

工作原理

Oversubscription在Mesos 0.23.0中被引入并 增加了两个新的 slave 组成部分:资源估算和服务质量(QoS)控制,延展旁边现有的资源进行分配,资源监视器和 mesos slave。
这里写图片描述

资源估计器

1.确定oversubscribed的资源数量,资源估计器利用资源监视器通过ResourceStatistic message 定期获取资源使用的统计情况,资源估计器利用收集到的资源统计情况决定oversubscribed 资源的数量,这些算法基于已经分配但是还没有使用和可以分配的资源。
2.agent通过轮旬的方式从资源估计器中获取信息从而跟踪最新的估计信息
3.当最新的估计信息不同于之前的信息时,会将oversubscribed的资源数量信息发送给master。

资源跟踪和调度算法

4.与其他有规律的相比,资源分配器会跟踪记录oversubscribed的资源,并称这种资源是可撤销的(revocable),并且由资源估计器来决定哪种资源是oversubscribed的,建议仅认购可压缩的资源,例如:CPU、带宽等。

框架

5.Framework可以通过普通的launchTask() API来启动使用可撤销资源的任务,为了保护没有设置优先级的Framework,仅有在属性中设置REVOCABLE_RESOURCES 进行注册的Framework才会接收到带有可撤销资源的资源邀约,并且,可撤销的资源不可以进行动态预留,同时,持久卷(persistent volumns)不能在作为可撤销资源的磁盘上创建。

启动任务

可撤销的任务像普通的任务一样,在收到runTask 请求时才启动。资源仍然被标记为可撤销的,并且如果某些资源需要为普通和可撤销的任务使用而做不同的准备,资源隔离器也会采取相应的措施。

注意

如果某些任务或者executor使用了可撤销的资源,则整个容器(container)被当做可撤销的容器对待,一次会被QoS控制器杀掉。

干扰探测

6.当可撤销的任务在运行的时候,使用监视器监控一直使用可撤销资源的任务以保证其性能很重要,为了应对探测到的干扰,QoS控制器需要杀掉或者压制运行中的可撤销的资源。

0 0