当前位置: 首页 > news >正文

【分布式理论15】分布式调度1:分布式资源调度的由来与过程

文章目录

    • 一、操作系统的资源调度:从单核到多核
    • 二、 分布式系统的资源调度:从单台服务器到集群
    • 三、 固定资源映射
    • 四、 动态资源分配:灵活的任务-资源匹配
    • 五、 资源调度过程:从申请到执行

本文主要讨论主题:

  1. 从操作系统到分布式系统,资源调度的复杂性随着计算需求的增长而不断增加。操作系统的进程调度关注单台机器的任务执行,而分布式系统的资源调度则需要考虑多台机器、多种计算任务以及任务与资源之间的灵活匹配。
  2. 通过引入资源调度器,分布式系统可以实现更高效、更灵活的资源管理与任务调度,使得计算任务能够在更大规模的集群中平稳运行。而动态资源分配,不仅提高了资源的利用率,还为系统的扩展性、弹性和可维护性提供了保障。

 

一、操作系统的资源调度:从单核到多核

在操作系统中,资源调度的基本单位是进程。当计算任务较少,且只有一个CPU时,操作系统只能一次处理一个任务。在这种情况下,操作系统依赖进程调度算法来控制计算任务的顺序。最初的调度方式是 时间片轮转,即将CPU的使用时间划分为小片段,多个计算任务交替执行,从而使得每个任务都有机会“看起来”像是独占CPU。

随着计算需求的增加,单核CPU无法满足大量计算任务的需求,于是多核CPU应运而生。与单核不同,多核CPU可以同时执行多个任务,操作系统需要更为复杂的调度算法来协调这些核之间的工作。

 

二、 分布式系统的资源调度:从单台服务器到集群

分布式系统则是对传统操作系统调度的“扩展”。通过水平扩展,多个服务器通过网络连接起来,共同处理更高并发的计算任务。这就引出了如何在多个服务器之间有效地调度资源的问题。在传统的操作系统中,调度的是单台机器上的资源(如CPU、内存),而在分布式系统中,需要调度的资源包括了多个节点上的 CPU、内存、硬盘、网络等资源

 

三、 固定资源映射

在分布式系统中,静态资源分配是最简单的资源管理方式。静态分配将计算任务与资源节点绑定,即每个计算任务都有固定的资源节点执行。例如,在一个资源集群中,我们可以把Spark、MapReduce、Storm等计算任务分别分配到3个不同的资源节点上,每个任务都只有自己专属的节点。这样,资源节点1至3就专门用来运行Spark任务,资源节点4至6专门处理MapReduce任务。

然而,这种方式也有它的缺点。比如,当某些资源节点出现故障或者不可用时,其他任务可能无法获得足够的资源。即使有其他资源节点空闲,这些空闲节点也无法被其他计算任务使用。静态资源分配的这一局限性使得资源利用率降低,并且无法应对集群规模的动态变化。

 

四、 动态资源分配:灵活的任务-资源匹配

相比静态资源分配,动态资源分配更加灵活,它不再要求计算任务和资源节点一一绑定,而是通过一个资源调度器动态地将任务和资源进行匹配。在动态分配中,计算任务向资源调度器提出请求,调度器根据各资源节点的使用情况,决定将任务分配给哪些节点。

动态资源分配的优势在于:

  • 资源利用率提高:空闲的资源也可以被分配给其他任务。
  • 弹性扩展性:如果集群规模需要扩展,只需增加新的资源节点,资源调度器会自动将新节点纳入管理,实现资源的平滑扩展。
  • 解耦计算任务与资源:动态资源分配解耦了计算任务与资源之间的绑定关系,允许多个计算框架(如Spark、MapReduce、Storm等)共享相同的资源。这种方式能够适应各种不同的计算需求,提升了系统的灵活性和可维护性。

 

五、 资源调度过程:从申请到执行

调度策略包含所需的任务调度策略,也就是对资源和计算任务进行匹配的算法。资源池是对收集起来的硬件资源进行存储和管理的地方。资源收集器,顾名思义就是对资源节点上报的资源进行收集和汇总。

资源调度器在动态资源分配中起到了核心作用。具体来说,资源调度的过程可以分为以下几个步骤:

  1. 资源的组织与管理:分布在不同网络节点上的资源(如CPU、内存等)由节点管理器管理。节点管理器定期向资源收集器汇报每个节点的资源使用情况。这些信息进入资源池,用于后续的任务调度。

  2. 计算任务的组织与管理:当有计算任务需要调度时,任务被放入任务队列。资源调度器根据队列中的任务和资源池中的资源,利用调度策略(如FIFO、公平调度、能力调度等)来决定资源分配的优先级和方式。

  3. 资源调度策略:资源调度策略决定了任务和资源的匹配方式。根据不同的策略,可以选择FIFO策略(先进先出)、能力策略(按任务需求分配资源)等。

  4. 任务执行与资源回收:当资源被分配给任务后,计算任务在资源节点上执行。任务执行完毕后,资源调度器回收资源,空闲资源会重新进入资源池等待下一次分配。
    ![[Pasted image 20250219092738.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圆柱 效果&#xff1a; 版本 "echarts": "^5.1.2" 核心代码&#xff1a; <template><div ref"charts" class"charts"></div><svg><linearGradient id"labColor" x1"0&q…...

Redux中间件redux-thunk和redux-saga的具体区别是什么?

Redux 中间件是增强 Redux 功能的重要工具&#xff0c;redux-thunk 和 redux-saga 是两个常用的中间件&#xff0c;它们在处理异步操作和副作用时提供了不同的方式和理念。以下是两者的具体区别&#xff1a; 1. 概念与设计理念 redux-thunk 简洁&#xff1a;redux-thunk 是一…...

代码随想录算法训练营第四十三天| 动态规划06

322. 零钱兑换 如果求组合数就是外层for循环遍历物品&#xff0c;内层for遍历背包。 如果求排列数就是外层for遍历背包&#xff0c;内层for循环遍历物品。 这句话结合本题 大家要好好理解。 视频讲解&#xff1a;动态规划之完全背包&#xff0c;装满背包最少的物品件数是多少&…...

UI自动化教程 —— 元素定位技巧:精确找到你需要的页面元素

引言 在UI自动化测试中&#xff0c;准确地定位页面元素是至关重要的。无论是点击按钮、填写表单还是验证页面内容&#xff0c;都需要首先找到相应的页面元素。Playwright 提供了多种方法来实现这一点&#xff0c;包括使用CSS选择器和XPath进行元素定位&#xff0c;以及利用文本…...

MySQL六大日志的功能介绍。

前言 首先&#xff0c;MySQL的日志应该包括二进制日志&#xff08;Binary Log&#xff09;、错误日志&#xff08;Error Log&#xff09;、查询日志&#xff08;General Query Log&#xff09;、慢查询日志&#xff08;Slow Query Log&#xff09;、重做日志&#xff08;Redo …...

二级指针略解【C语言】

以int** a为例 1.二级指针的声明 a 是一个指向 int*&#xff08;指向整型的指针&#xff09;的指针&#xff0c;即二级指针。 通俗的讲&#xff0c;a是一个指向指针的指针&#xff0c;对a解引用会是一个指针。 它可以用于操作动态分配的二维数组、指针数组或需要间接修改指针…...

鸿蒙状态管理概述

状态管理 状态管理之v1LocalStorageLocalStorageLink的框架行为LocalStorageProp的框架行为LocalStorage使用场景 AppStorageStorageLink的框架行为StorageProp的框架行为AppStorage的使用场景 PersistentStorageEnvironmentEnvironment内置参数 WatchWatch的使用场景 $$语法$$…...

【核心算法篇十三】《DeepSeek自监督学习:图像补全预训练方案》

引言:为什么自监督学习成为AI新宠? 在传统监督学习需要海量标注数据的困境下,自监督学习(Self-Supervised Learning)凭借无需人工标注的特性异军突起。想象一下,如果AI能像人类一样通过观察世界自我学习——这正是DeepSeek图像补全方案的技术哲学。根据,自监督学习通过…...

由浅入深学习大语言模型RLHF(PPO强化学习- v1浅浅的)

最近&#xff0c;随着DeepSeek的爆火&#xff0c;GRPO也走进了视野中。为了更好的学习GRPO&#xff0c;需要对PPO的强化学习有一个深入的理解&#xff0c;那么写一篇文章加深理解吧。纵观网上的文章&#xff0c;要么说PPO原理&#xff0c;各种复杂的公式看了就晕&#xff0c;要…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件&#xff0c;我的文件路径是/etc/mysql/my.cnf&#xff0c;有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧

上周三&#xff0c;HubSpot宣布已构建与ChatGPT的深度集成&#xff0c;这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋&#xff0c;但同时也存在一些关于数据安全的担忧。 许多网络声音声称&#xff0c;这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

c# 局部函数 定义、功能与示例

C# 局部函数&#xff1a;定义、功能与示例 1. 定义与功能 局部函数&#xff08;Local Function&#xff09;是嵌套在另一个方法内部的私有方法&#xff0c;仅在包含它的方法内可见。 • 作用&#xff1a;封装仅用于当前方法的逻辑&#xff0c;避免污染类作用域&#xff0c;提升…...

LINUX编译vlc

下载 VideoLAN / VLC GitLab 选择最新的发布版本 准备 sudo apt install -y xcb bison sudo apt install -y autopoint sudo apt install -y autoconf automake libtool编译ffmpeg LINUX FFMPEG编译汇总&#xff08;最简化&#xff09;_底部的附件列表中】: ffmpeg - lzip…...

【学习记录】使用 Kali Linux 与 Hashcat 进行 WiFi 安全分析:合法的安全测试指南

文章目录 &#x1f4cc; 前言&#x1f9f0; 一、前期准备✅ 安装 Kali Linux✅ 获取支持监听模式的无线网卡 &#x1f6e0; 二、使用 Kali Linux 进行 WiFi 安全测试步骤 1&#xff1a;插入无线网卡并确认识别步骤 2&#xff1a;开启监听模式步骤 3&#xff1a;扫描附近的 WiFi…...