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 举报,一经查实,本站将立刻删除。