微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.在“ 高级”部分下,单击“ 编辑配置”。

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

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

如何工作的

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

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

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

原文地址:https://www.toutiao.com/article/6687727376354247171/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐