设计一个按优先数调度算法实现处理器调度的程序_CPU调度程序-处理器拓扑/缓存感知...

ESXi Server具有高级CPU调度程序,旨在为在Intel / AMD x86架构上运行的VM提供高性能,公平性和隔离性。

ESXi CPU调度程序的设计具有以下目标:

  • 性能隔离:多VM公平性
  • Coscheduling:所有vCPU同时在线的错觉
  • 性能:高吞吐量,低延迟,高可扩展性和低开销
  • 功效:在不损失性能的情况下节省功率
  • 广泛采用:在各种处理器架构上实现所有优化

在任何给定的瞬间,每个CPU只能有一个活动进程; 例如,多个vCPU可以在同一个pCPU上运行,而不是在一个实例中运行,有多个进程而不是CPU。因此,将发生排队,并且调度程序将负责控制队列,处理优先级以及抢占CPU的使用。

CPU调度程序的主要任务是选择将哪个world调度到处理器。为了给每个world提供运行的机会,调度程序专用一个时间片(也称为一个world可以执行的持续时间(通常为10-20毫秒,默认情况下VMkernel为50))到每个进程然后迁移运行,等待,共同停止和准备之间的world状态。

ESXi实现基于比例共享的算法。它将每个world与所有VM中的CPU资源份额相关联。这称为权利,根据用户提供的资源规范(例如共享,预留和限制)计算。

在vSphere中如何实现

1.打开vSphere Web Client。

2.在主屏幕上,导航到“ 主机和群集”。

3.展开左侧导航列表。

4.在VM清单中,右键单击虚拟机,然后单击“ 编辑设置”。将出现“ 虚拟机编辑设置”对话框。

5.单击VM Options选项卡。

6.在“ 高级”部分下,单击“ 编辑配置”。

378c4c9794152baf3d28d892059bd799.png

7.在底部,输入sched.cpu.vsmpConsolidate作为名称,True为值,然后单击添加。

8.最终屏幕应该如下截图所示。获得此信息后,单击“ 确定”保存设置:

f3ea0871c2933e8c6cf068c7191377e3.png

如何工作的

CPU调度程序使用处理器拓扑信息来优化vCPU在不同套接字上的位置。

单个套接字内的核心通常使用共享的最后一级缓存。如果CPU运行内存密集型工作负载,则使用共享的最后一级缓存可以提高vCPU性能。

默认情况下,CPU调度程序将负载分散到欠承诺系统中的所有套接字。这可以通过最大化正在运行的vCPU可用的缓存总量来提高性能。对于此类工作负载,即使ESXi主机处于提交状态,使用共享的最后一级缓存在同一套接字上安排所有vCPU也是有益的。在这种情况下,您可以通过在VM的VMX配置文件中包含以下配置选项来覆盖跨包传播vCPU的默认行为:sched.cpu.vsmpConsolidate=TRUE。但是,通常最好坚持使用默认行为。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值