【分布式理论15】分布式调度1:分布式资源调度的由来与过程
文章目录
- 一、操作系统的资源调度:从单核到多核
- 二、 分布式系统的资源调度:从单台服务器到集群
- 三、 固定资源映射
- 四、 动态资源分配:灵活的任务-资源匹配
- 五、 资源调度过程:从申请到执行
本文主要讨论主题:
- 从操作系统到分布式系统,资源调度的复杂性随着计算需求的增长而不断增加。操作系统的进程调度关注单台机器的任务执行,而分布式系统的资源调度则需要考虑多台机器、多种计算任务以及任务与资源之间的灵活匹配。
- 通过引入资源调度器,分布式系统可以实现更高效、更灵活的资源管理与任务调度,使得计算任务能够在更大规模的集群中平稳运行。而动态资源分配,不仅提高了资源的利用率,还为系统的扩展性、弹性和可维护性提供了保障。
一、操作系统的资源调度:从单核到多核
在操作系统中,资源调度的基本单位是进程。当计算任务较少,且只有一个CPU时,操作系统只能一次处理一个任务。在这种情况下,操作系统依赖进程调度算法来控制计算任务的顺序。最初的调度方式是 时间片轮转,即将CPU的使用时间划分为小片段,多个计算任务交替执行,从而使得每个任务都有机会“看起来”像是独占CPU。
随着计算需求的增加,单核CPU无法满足大量计算任务的需求,于是多核CPU应运而生。与单核不同,多核CPU可以同时执行多个任务,操作系统需要更为复杂的调度算法来协调这些核之间的工作。
二、 分布式系统的资源调度:从单台服务器到集群
分布式系统则是对传统操作系统调度的“扩展”。通过水平扩展,多个服务器通过网络连接起来,共同处理更高并发的计算任务。这就引出了如何在多个服务器之间有效地调度资源的问题。在传统的操作系统中,调度的是单台机器上的资源(如CPU、内存),而在分布式系统中,需要调度的资源包括了多个节点上的 CPU、内存、硬盘、网络等资源。
三、 固定资源映射
在分布式系统中,静态资源分配是最简单的资源管理方式。静态分配将计算任务与资源节点绑定,即每个计算任务都有固定的资源节点执行。例如,在一个资源集群中,我们可以把Spark、MapReduce、Storm等计算任务分别分配到3个不同的资源节点上,每个任务都只有自己专属的节点。这样,资源节点1至3就专门用来运行Spark任务,资源节点4至6专门处理MapReduce任务。
然而,这种方式也有它的缺点。比如,当某些资源节点出现故障或者不可用时,其他任务可能无法获得足够的资源。即使有其他资源节点空闲,这些空闲节点也无法被其他计算任务使用。静态资源分配的这一局限性使得资源利用率降低,并且无法应对集群规模的动态变化。
四、 动态资源分配:灵活的任务-资源匹配
相比静态资源分配,动态资源分配更加灵活,它不再要求计算任务和资源节点一一绑定,而是通过一个资源调度器动态地将任务和资源进行匹配。在动态分配中,计算任务向资源调度器提出请求,调度器根据各资源节点的使用情况,决定将任务分配给哪些节点。
动态资源分配的优势在于:
- 资源利用率提高:空闲的资源也可以被分配给其他任务。
- 弹性扩展性:如果集群规模需要扩展,只需增加新的资源节点,资源调度器会自动将新节点纳入管理,实现资源的平滑扩展。
- 解耦计算任务与资源:动态资源分配解耦了计算任务与资源之间的绑定关系,允许多个计算框架(如Spark、MapReduce、Storm等)共享相同的资源。这种方式能够适应各种不同的计算需求,提升了系统的灵活性和可维护性。
五、 资源调度过程:从申请到执行
调度策略包含所需的任务调度策略,也就是对资源和计算任务进行匹配的算法。资源池是对收集起来的硬件资源进行存储和管理的地方。资源收集器,顾名思义就是对资源节点上报的资源进行收集和汇总。
资源调度器在动态资源分配中起到了核心作用。具体来说,资源调度的过程可以分为以下几个步骤:
-
资源的组织与管理:分布在不同网络节点上的资源(如CPU、内存等)由节点管理器管理。节点管理器定期向资源收集器汇报每个节点的资源使用情况。这些信息进入资源池,用于后续的任务调度。
-
计算任务的组织与管理:当有计算任务需要调度时,任务被放入任务队列。资源调度器根据队列中的任务和资源池中的资源,利用调度策略(如FIFO、公平调度、能力调度等)来决定资源分配的优先级和方式。
-
资源调度策略:资源调度策略决定了任务和资源的匹配方式。根据不同的策略,可以选择FIFO策略(先进先出)、能力策略(按任务需求分配资源)等。
-
任务执行与资源回收:当资源被分配给任务后,计算任务在资源节点上执行。任务执行完毕后,资源调度器回收资源,空闲资源会重新进入资源池等待下一次分配。
![![[Pasted image 20250219092738.png]]](https://i-blog.csdnimg.cn/direct/325f80760d8a4769abd97a385fb41e77.png)
《分布式架构原理与实践 - 崔皓》
相关文章:
【分布式理论15】分布式调度1:分布式资源调度的由来与过程
文章目录 一、操作系统的资源调度:从单核到多核二、 分布式系统的资源调度:从单台服务器到集群三、 固定资源映射四、 动态资源分配:灵活的任务-资源匹配五、 资源调度过程:从申请到执行 本文主要讨论主题: 从操作系统…...
Python常见面试题的详解12
1. hasattr ()、getattr ()、setattr () 函数是如何使用的? 要点 这三个函数用于对对象的属性进行检查、获取和设置操作,是 Python 中进行对象属性动态操作的重要工具。 hasattr():用于检查对象是否具有指定属性或方法。 getattr()&#x…...
未来AI方向落地场景:小语言模型,super_private_agent
未来AI方向落地场景:小语言模型,super_private_agent 目录 未来AI方向落地场景:小语言模型,super_private_agent小语言模型super - private - agent(注重隐私的智能代理)碳基生命和硅基生命交互界面面向agent的专用交互协议和数据接口从web平台经济到网络平台举例说明社交…...
使用 PyTorch 实现标准卷积神经网络(CNN)
卷积神经网络(CNN)是深度学习中的重要组成部分,广泛应用于图像处理、语音识别、视频分析等任务。在这篇博客中,我们将使用 PyTorch 实现一个标准的卷积神经网络(CNN),并介绍各个部分的作用。 什…...
开题报告——基于Spring Boot的垃圾分类预约回收系统
关于本科毕业设计(论文)开题报告的规定 为切实做好本科毕业设计(论文)的开题报告工作,保证论文质量,特作如下规定: 一、开题报告是本科毕业设计(论文)的必经过程,所有本科生在写作毕业设计(论文)之前都必须作开题报告。 二、开题报告主要检验学生对专业知识的驾驭能…...
YOLOv5 目标检测优化:降低误检与漏检
1. 引言 在目标检测任务中,误检(False Positive, FP)和漏检(False Negative, FN)是影响检测性能的两个主要问题。误检意味着模型检测到了不存在的目标,而漏检则指模型未能检测到真实存在的目标。本文将介绍…...
网络安全治理模型
0x02 知识点 安全的目标是提供 可用性 Avialability机密性 confidentiality完整性 Integrity真实性 Authenticity不可否认性 Nonrepudiation 安全治理是一个提供监督、问责和合规性的框架 信息安全系统 Information Security Management System ISMS 策略,工作程…...
网络原理-
文章目录 协议应用层传输层网络层 数据链路层 协议 在网络通信中,协议是非常重要的概念.协议就是一种约定. 在网络通信过程中,对协议进行了分层 接下来就按照顺序向大家介绍每一种核心的协议. 应用层 应用层是咱们程序员打交道最多的一层协议.应用层里有很多现成的协议,但…...
HTML/CSS中交集选择器
1.作用:选中同时符合多个条件的元素 交集就是或的意思 2.语法:选择器1选择器2选择器3......选择器n{} 3.举例: /* 选中:类名为beauty的p元素,此种写法用的非常的多 */p.beauty{color: red;}/* 选中:类名包含rich和beauty的元素 */.rich.beauty{color: blue;} 4.注意: 1.有标签…...
机器学习(1)安装Pytorch
1.安装命令 pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 2.安装过程Log: Looking in indexes: https://download.pytorch.org/whl/cu118 Co…...
Spring Boot过滤器链:从入门到精通
文章目录 一、过滤器链是什么?二、为什么需要过滤器链?三、Spring Boot中的过滤器链是如何工作的?(一)过滤器的生命周期(二)过滤器链的执行流程 四、如何在Spring Boot中定义自己的过滤器&#…...
vue3之echarts3D圆柱
vue3之echarts3D圆柱 效果: 版本 "echarts": "^5.1.2" 核心代码: <template><div ref"charts" class"charts"></div><svg><linearGradient id"labColor" x1"0&q…...
Redux中间件redux-thunk和redux-saga的具体区别是什么?
Redux 中间件是增强 Redux 功能的重要工具,redux-thunk 和 redux-saga 是两个常用的中间件,它们在处理异步操作和副作用时提供了不同的方式和理念。以下是两者的具体区别: 1. 概念与设计理念 redux-thunk 简洁:redux-thunk 是一…...
代码随想录算法训练营第四十三天| 动态规划06
322. 零钱兑换 如果求组合数就是外层for循环遍历物品,内层for遍历背包。 如果求排列数就是外层for遍历背包,内层for循环遍历物品。 这句话结合本题 大家要好好理解。 视频讲解:动态规划之完全背包,装满背包最少的物品件数是多少&…...
UI自动化教程 —— 元素定位技巧:精确找到你需要的页面元素
引言 在UI自动化测试中,准确地定位页面元素是至关重要的。无论是点击按钮、填写表单还是验证页面内容,都需要首先找到相应的页面元素。Playwright 提供了多种方法来实现这一点,包括使用CSS选择器和XPath进行元素定位,以及利用文本…...
MySQL六大日志的功能介绍。
前言 首先,MySQL的日志应该包括二进制日志(Binary Log)、错误日志(Error Log)、查询日志(General Query Log)、慢查询日志(Slow Query Log)、重做日志(Redo …...
二级指针略解【C语言】
以int** a为例 1.二级指针的声明 a 是一个指向 int*(指向整型的指针)的指针,即二级指针。 通俗的讲,a是一个指向指针的指针,对a解引用会是一个指针。 它可以用于操作动态分配的二维数组、指针数组或需要间接修改指针…...
鸿蒙状态管理概述
状态管理 状态管理之v1LocalStorageLocalStorageLink的框架行为LocalStorageProp的框架行为LocalStorage使用场景 AppStorageStorageLink的框架行为StorageProp的框架行为AppStorage的使用场景 PersistentStorageEnvironmentEnvironment内置参数 WatchWatch的使用场景 $$语法$$…...
【核心算法篇十三】《DeepSeek自监督学习:图像补全预训练方案》
引言:为什么自监督学习成为AI新宠? 在传统监督学习需要海量标注数据的困境下,自监督学习(Self-Supervised Learning)凭借无需人工标注的特性异军突起。想象一下,如果AI能像人类一样通过观察世界自我学习——这正是DeepSeek图像补全方案的技术哲学。根据,自监督学习通过…...
由浅入深学习大语言模型RLHF(PPO强化学习- v1浅浅的)
最近,随着DeepSeek的爆火,GRPO也走进了视野中。为了更好的学习GRPO,需要对PPO的强化学习有一个深入的理解,那么写一篇文章加深理解吧。纵观网上的文章,要么说PPO原理,各种复杂的公式看了就晕,要…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
