【分布式理論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]]

?

《分布式架構原理與實踐 - 崔皓》

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/895943.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/895943.shtml
英文地址,請注明出處:http://en.pswp.cn/news/895943.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Linux C/C++開發】Linux系統輕量級的隊列緩存mqueue

前言 開發設計時,通常會對業務流程進行模塊化,有些流程之間,不要求同步,但又需要傳遞信息時,如果存儲到數據庫,效率降低很多,如果是存放在內存是最好的。此時可以選擇系統的IPC(進程…

Vue 實現通過URL瀏覽器本地下載 PDF 和 圖片

1、代碼實現如下: 根據自己場景判斷 PDF 和 圖片,下載功能可按下面代碼邏輯執行 const downloadFile async (item: any) > {try {let blobUrl: any;// PDF本地下載if (item.format pdf) {const response await fetch(item.url); // URL傳遞進入i…

計算機網絡基礎雜談(局域網、ip、子網掩碼、網關、DNS)

目錄 1. 簡單局域網的構成 2. IP 地址 3. 子網掩碼 4. IP地址詳解自定義IP 5. IP 地址詳解 6. 網關 7. DNS 域名解析 8. ping 1. 簡單局域網的構成 交換機是組建局域網最重要的設備,換句話說,沒有交換機就沒法搭建局域網 交換機不能讓局域網連…

Thor: 統一AI模型網關的革新之選

項目價值 Thor(雷神托爾)作為一個強大的AI模型管理網關,解決了當前AI領域一個關鍵痛點:不同AI服務商的API格式各異,集成成本高。Thor通過將各種AI模型的獨特格式統一轉換為OpenAI格式,顯著降低了開發者的使用門檻和維護成本。 核…

25年2月通信基礎知識補充:多普勒頻移與多普勒擴展、3GPP TDL信道模型

看文獻過程中不斷發現有太多不懂的基礎知識,故長期更新這類blog不斷補充在這過程中學到的知識。由于這些內容與我的研究方向并不一定強相關,故記錄不會很深入請見諒。 【通信基礎知識補充7】25年2月通信基礎知識補充1 一、多普勒頻移與多普勒擴展傻傻分不…

【Python】Python入門——筆記合集

哈哈 00、環境搭建 學習Python,首先需要搭建一個本地開發環境,或是使用線上開發環境(各類練習網站),這篇博客里主要記錄了本地開發環境的配置方法。內容包括python解釋器的安裝以及pycharm的安裝、漢化等。 博客地…

為什么mvcc中?m_ids 列表并不等同于 min_trx_id 和 max_trx_id 之間的所有事務 ID

首先我們要明確 m_ids 表示創建 ReadView 時,系統中所有活躍(未提交)事務的事務 ID 列表。 僅包含當前未提交的事務,與事務 ID 的數值范圍無關。 min_trx_id 是 m_ids 中的最小值。若 m_ids 為空,則 min_trx_id 等于…

使用 Spark NLP 實現中文實體抽取與關系提取

在自然語言處理(NLP)領域,實體抽取和關系提取是兩個重要的任務。實體抽取用于從文本中識別出具有特定意義的實體(如人名、地名、組織名等),而關系提取則用于識別實體之間的關系。本文將通過一個基于 Apache Spark 和 Spark NLP 的示例,展示如何實現中文文本的實體抽取和…

FPGA開發要學些什么?如何快速入門?

隨著FPGA行業的不斷發展,政策的加持和投入的研發,近兩年FPGA行業的薪資也是水漲船高,一些人轉行后拿到了薪資30W,甚至有一些能力強的人可以拿到60W,看到這里想必不少人表示很心動,但又不知道怎么轉&#xf…

使用Python和正則表達式爬取網頁中的URL數據

在數據抓取和網絡爬蟲開發中,提取網頁中的URL是一個常見的需求。無論是用于構建網站地圖、分析鏈接結構,還是進行內容聚合,能夠高效地從HTML文檔中提取URL都是一個重要的技能。Python作為一種強大的編程語言,結合其正則表達式模塊…

人工智能之目標追蹤DeepSort源碼解讀(yolov5目標檢測,代價矩陣,余弦相似度,馬氏距離,匹配與預測更新)

要想做好目標追蹤,須做好目標檢測,所以這里就是基于yolov5檢測基礎上進行DeepSort,叫它為Yolov5_DeepSort。整體思路是先檢測再追蹤,基于檢測結果進行預測與匹配。 一.參數與演示 這里用到的是coco預訓練人的數據集: 二.針對檢測結果初始化track 對每一幀數據都輸出…

C++藍橋杯基礎篇(四)

片頭 嗨~小伙伴們,大家好!今天我們來學習C藍橋杯基礎篇(四),繼續練習相關習題。準備好了嗎?咱們開始咯~ 題目1 連續整數相加 思路分析: 這道題,我們可以把從鍵盤中讀取n寫在while循…

YOLOv12從入門到入土(含結構圖)

論文鏈接:https://arxiv.org/abs/2502.12524 代碼鏈接:https://github.com/sunsmarterjie/yolov12 文章摘要: 長期以來,增強YOLO框架的網絡架構一直至關重要,但一直專注于基于cnn的改進,盡管注意力機制在建…

SpringSecurity基于配置方法控制訪問權限:MVC匹配器、Ant匹配器

Spring Security 是一個功能強大且高度可定制的身份驗證和訪問控制框架。在 Spring Security 中,可以通過配置方法來控制訪問權限。認證是實現授權的前提和基礎,在執行授權操作前需要明確目標用戶,只有明確目標用戶才能明確它所具備的角色和權…

【iOS】SwiftUI狀態管理

State ObservedObject StateObject 的使用 import SwiftUIclass CountModel: ObservableObject {Published var count: Int 0 // 通過 Published 標記的變量會觸發視圖更新init() {print("TimerModel initialized at \(count)")} }struct ContentView: View {State…

跟著 Lua 5.1 官方參考文檔學習 Lua (3)

文章目錄 2.5 – Expressions2.5.1 – Arithmetic Operators2.5.2 – Relational Operators2.5.3 – Logical Operators2.5.4 – Concatenation2.5.5 – The Length Operator2.5.6 – Precedence2.5.7 – Table Constructors2.5.8 – Function Calls2.5.9 – Function Definiti…

(LLaMa Factory)大模型訓練方法--監督微調(Qwen2-0.5B)

1、準備訓練數據:SFT 的數據格式有多種,例如:Alpaca格式、OpenAI格式等。 #其中Alpaca格式如下:[{"instruction":"human instruction (required)","input":"human input (optional)",&qu…

Sojson高級加密技術科普

1. 引言 什么是Sojson? Sojson是一款用于JavaScript代碼加密與混淆的工具,它能夠有效保護前端代碼的知識產權,避免開發者的心血被隨意竊取。 為什么需要代碼加密? 在當今的互聯網環境下,代碼被輕易復制、篡改或逆向…

自制簡單的圖片查看器(python)

圖片格式:支持常見的圖片格式(JPG、PNG、BMP、GIF)。 import os import tkinter as tk from tkinter import filedialog, messagebox from PIL import Image, ImageTkclass ImageViewer:def __init__(self, root):self.root rootself.root.…

【核心算法篇十三】《DeepSeek自監督學習:圖像補全預訓練方案》

引言:為什么自監督學習成為AI新寵? 在傳統監督學習需要海量標注數據的困境下,自監督學習(Self-Supervised Learning)憑借無需人工標注的特性異軍突起。想象一下,如果AI能像人類一樣通過觀察世界自我學習——這正是DeepSeek圖像補全方案的技術哲學。根據,自監督學習通過…