第 7 章 分布式资源管理和调度(1)
崔皓
第 5 章和第 6 章都讲到了对计算任务以及存储单元做拆分,目的是高效处理并发请求和海量数据。无论是计算任务还是数据存储都免不了分配资源这一步,其中的资源指硬件资源,包括 CPU、内存、硬盘、网口。在单机环境中,资源管理相对简单,而分布式环境中,资源分布相对分散,如何协调资源应对计算任务和数据存储就是亟待解决的问题。这一章讲的内容解决的就是如何匹配资源与计算任务,并对资源进行有效管理。本章首先会介绍分布式资源管理和调度的概念,包括分布式资源调度的由来、要素和内容。然后聚焦资源的划分和调度,介绍任务队列与资源池以及三大资源调度策略。之后引出分布式资源调度的三类架构,即中心化调度器、两级调度器和共享状态调度器。分布式资源调度除了应用于计算任务,在微服务部署领域也起到了重要作用,本章也会通过一个应用部署的例子,介绍 Kubernetes 的各个组件以及实现原理。总结起来,本章会讲解以下内容。
分布式资源调度的由来与过程
资源划分和调度策略
分布式调度架构
Kubernetes——资源调度的实践
7.1 分布式资源调度的由来与过程
相较于分布式系统的资源调度,操作系统的工作可以视为一种微观的资源调度。操作系统将要处理的计算任务抽象成一个个进程,在最初只有单个 CPU 的情况下,同一时间只能处理一个进程,也就是一个计算任务。如果需要同时处理多个计算任务,就需要用到操作系统的进程调度算法,例如时间片轮转调度算法,这种算法中 CPU 会在多个计算任务之间快速切换,使计算任务交替执行,这也是最早处理计算任务并发执行的方式。对于并发的计算任务而言,好像自身独占 CPU 一样。随着业务的发展,需要在同一时刻支持更多计算任务,于是诞生了多核 CPU。和单核 CPU 一样,多核 CPU 也需要用到调度算法。推而广之,分布式系统为了处理更高并发的计算任务,对硬件资源进行了水平扩展。就像 CPU 从单核扩展到多核一样,服务器被扩展成多台并且分布在不同的网络节点上,每个节点都包含 CPU、内存、硬盘、网口等系统资源。如何管理好这些资源,并且将计算任务分配给它们就是我们要解决的问题。
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
![](https://static001.geekbang.org/resource/image/d0/e4/d0880927e2a522a038be2d04bf19dfe4.png)
本文深入探讨了分布式资源管理和调度的概念、重要性以及相关技术实践。首先介绍了分布式资源调度的由来与过程,从操作系统的微观资源调度到分布式系统的资源调度演进。随后详细介绍了资源调度过程,包括任务的组织和管理、资源的组织和管理以及调度策略的匹配过程。文章还提到了分布式资源调度在微服务部署领域的重要作用,并通过 Kubernetes 的实践例子介绍了其各个组件及实现原理。此外,文章还探讨了Linux Container(LXC)资源划分的方式及其优点,以及命名空间实现资源隔离的机制。总体而言,本文对于想要了解分布式系统资源管理和调度的读者具有很高的参考价值。文章还介绍了LXC Namespace 内核级别隔离的机制,以及CGroup机制对运行在不同用户空间中的进程进行管理的方式。通过对CGroup的概念和工作方式的介绍,读者可以深入了解资源管理和隔离的技术细节。文章还介绍了LXC Namespace 和 CGroup 的概念,以及它们在资源管理和隔离方面的作用。另外,文章还介绍了任务队列与资源池的组织方式以及三大资源调度策略,为读者提供了全面的分布式资源管理和调度知识。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式架构原理与实践》
《分布式架构原理与实践》
立即购买
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论