b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

关于Hyper-V虚拟CPU分配的讨论_计算机硬件和网络_IT /计算机_信息

电脑杂谈  发布时间:2020-08-13 07:08:27  来源:网络整理

hyper v 分配cpu_hyper-v server管理磁盘空间_hyper v

内容摘要: 合理分配Hyper-V虚拟机的虚拟CPU(vCPU)的基础是什么?在本文中,我们将简要介绍Windows Server如何使用CPU处理多任务,以及我们关心的Hyper-V环境中的虚拟CPU分配问题. 在开始之前,让我们看一下如何安排物理计算机的CPU. 我应该为物理服务器为虚拟机分配多少个虚拟CPU?我的虚拟化CPU分配比例达到4: 1,会导致CPU资源过载吗?我只将一半的物理核心分配给了虚拟CPU,但是CPU时间大约为70%,而另一台物理机上的虚拟CPU分配达到了3: 1,但是CPU利用率仅为30%左右. 这是怎么回事?在计划Hyper-V或其他虚拟化资源时,我们几乎总是会注意这些问题. 虚拟化和云计算的目标之一是集中计算资源,并为虚拟机动态分配CPU资源和其他资源. 当多个虚拟机实例在物理机上运行时,这种动态使用CPU的效果会更大. 明显. 在虚拟化世界中,如何为虚拟机分配CPU一直是一个没有标准答案的问题. 在今天的文章中,我们将回到本质上来了解Hyper-V虚拟化平台如何分配CPU. 我们希望每个人都对Hyper-V CPU资源计划的原理和方法有初步的了解.

hyper v_hyper-v server管理磁盘空间_hyper v 分配cpu

在开始之前,我们首先了解CPU如何处理任务(即进程),然后首先回顾一下CPU在单核CPU时代如何处理多个任务. CPU内核使用线程(线程是一系列CPU指令)来处理任务. 单核CPU只能打开一个线程来一次处理一个任务. 如果有更高优先级的任务要处理,CPU将挂起当前线程,然后打开另一个线程来处理新任务. 假设我必须在一段时间T中处理2个任务: 任务a和任务b. 任务b的优先级高于任务a. 首先,CPU内核打开线程A来处理任务a. 在t1处处理任务a时,任务b具有更高的优先级,因此在任务b中断CPU之后,CPU挂起线程A,然后为任务b打开线程B. 在时间段t2中处理任务b,关闭线程B,然后在时间段t3中继续线程A以完成任务a. 如果任务b的优先级不高于任务a,则线程需要在打开任务b的线程之前处理任务a. 在此过程中,我们可以总结以下几点: 1.如果只有一个CPU内核(非超线程),则在特定时间只能打开一个线程. 单核CPU地处理多个任务,操作系统任务管理器负责线程管理.

hyper v_hyper v 分配cpu_hyper-v server管理磁盘空间

2. 活动线程将在处理任务时使用100%的CPU. 当线程处于非活动状态时,CPU时间下降到0,因此线程只有0或100%CPU时间,并且不会出现两个值. 之间的CPU时间. 3.我们在操作系统计数器中看到的CPU时间是时间T中的CPU时间的平均值,如图1所示. 它实际上可以用矩形的面积表示: 水平轴表示长度. 矩形,实际上是测量时间间隔(间隔);垂直轴表示矩形的宽度,实际CPU时间(0或100),时间T中CPU的理论总时间(活动和不活动)为T * 1 = T,线程A的时间为( t1 + t3)* 1 = t1 + t3,线程B的时间为t2 * 1 = t2,所以我们说在时间T中,CPU使用时间为[(t1 + t2 + t3)/ T] * 100% . 当今的CPU已经具有多核和超线程技术,因此多个核可以打开多个线程来一次处理多个任务. 对于内核(无超线程),处理机制保持不变. 但是,在多核和多线程环境中,其他高优先级任务无需中断占用的CPU内核即可自行打开线程,并且对于具有相同优先级的任务,无需等待被占用的CPU内核. CPU核心在当前任务处理后自行打开线程. ,但是请使用空闲的CPU内核自行打开线程,如图2所示.

hyper v_hyper v 分配cpu_hyper-v server管理磁盘空间

对于多核CPU的每个核,其处理机制与单核CPU的处理机制相同. 计算CPU实际使用时间的方法相同,除了CPU的时间是多核时间的总和(N核CPU可以是. 矩形的宽度增加N倍)之外,线程的管理也是操作系统任务管理器的职责. Hyper-V虚拟化环境CPU分配和计划在物理环境中,Windows Server使用上述机制来打开,暂停或关闭任务进程的线程. Windows Server担当CPU管理员的角色,并负责管理处理任务的线程. 在虚拟化环境中,由于将CPU的调度和管理转移到虚拟化软件层,因此虚拟化软件承担CPU管理员的管理角色,并负责管理所有分区操作系统(包括父级和子级)中的线程分区). 进一步看,父分区和子分区的线程由虚拟化软件的线程调度程序管理. Hyper-V线程调度程序在物理环境中与操作系统任务管理器扮演相同的角色. 当虚拟机系统需要处理特定任务时,虚拟化层的线程调度程序将在虚拟机的一个或多个逻辑核心中启动一个或多个线程,如图3所示. 如果目前有足够的核心可用关于调度,线程调度程序可以在可用内核中随机启动一个线程,但是如果当前没有可用的内核,那么该线程将程调度程序中等待,直到有可用内核释放为止,如图4所示.

hyper v 分配cpu_hyper v_hyper-v server管理磁盘空间

需要清除的是,它没有在虚拟机设置中分配给虚拟机. 这些虚拟CPU在虚拟机的生命周期内绑定到该虚拟机,这更像是将CPU“租赁”给虚拟机,并且CPU内核的“租赁”周期和“租赁”都不是决心. 因此,分配给虚拟机的线程的逻辑核心是动态的,而不是固定的. 例如,在t1时,虚拟机当前分配两个线程在逻辑核心1和5中运行,因为该逻辑核心被其他线程中断. 由于其他原因,这两个线程可能在t2时在逻辑核心2和4中运行,这意味着即,每个逻辑核心运行的线程是随机的. 线程调度程序控制逻辑核心的分配,并在收到虚拟机任务请求后将逻辑核心分配给虚拟机线程,但是虚拟机不会选择运行哪个逻辑核心. 了解了CPU核心如何处理线程之后,如何测量CPU时间以及Hyper-V虚拟化平台的CPU分配规则,我们知道CPU时间取决于任务线程的数量,线程的繁忙程度和任务处理时间. 实际生产环境中的应用程序类型很多,应用程序进程使用的线程数,线程的繁忙程度和任务处理时间都不同. 在物理机上运行低负载应用程序虚拟机时,即使虚拟化程度较高,例如,也将40多个虚拟CPU分配给在20核服务器上运行的20个虚拟机(虚拟化比率为2: 1) . 任务具有很少的线程,并且任务处理时间非常短. CPU内核可以在一定时间内顺序运行多个虚拟机线程. 大多数核心足以在短时间内处理这些应用程序过程. 因此,我们在物理计算机系统中观察到的CPU使用时间通常处于图5所示的状态.

在物理机上运行高负载应用程序虚拟机时,即使虚拟化比率不高,例如为20核服务器上运行的5个虚拟机分配20个以上的虚拟CPU(虚拟化比率1: 1)由于虚拟机任务有许多线程和繁忙线程,并且任务处理时间较长,因此CPU内核可以在一定时间内按顺序运行几个虚拟机线程,这需要大多数内核以及它们的大部分时间. 因此,我们在物理机系统中观察到的CPU使用时间通常处于图6所示的状态. 当存在一定数量的虚拟机并且虚拟机上运行的应用程序多样化时,虚拟机所使用的线程数将增加. 应用程序进程,线程的繁忙程度和任务处理时间都是变化的指标,难以准确衡量,因此我们必须获得正确的选择. 可以根据早期的实际负载粗略评估CPU分配比率,并在后期根据云平台调度界面进行优化或水平扩展. 在规划时,我们可以根据虚拟化平台的目的进行不同的评估: (1)在可以收集数据中心负载性能的环境(例如用户自己的数据中心)中,可以使用Microsoft评估和规划(MAP)由Microsoft提供. 该工具在合理的时间内收集服务器的负载,并以此为基础确定硬件资源和虚拟化的合理比例. (2)当无法收集和预测负载类型和负载性能时(例如在IDC或托管环境中,无法使用MAP进行预先分析和计划),可以考虑使用行业中一些CPU基准评估软件来评价. 当然,无论您最初如何设计和计划,都无法获得准确的分配比例. 您必须充分利用Hyper-V的性能优化. 当物理环境具有较高的CPU使用率时,可以考虑使用实时迁移来获得平均性能. 分布.


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-297898-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...