以前CPU的核心数比较少,UMA产生的竞争还比较少,现在核心数多,产生竞争的可能性增加。
使用NUMA架构,CPU优先使用相邻的内存。
VCP的课程是基于UMA来讲CPU调度的。
- Socket: 物理CPU的个数,授权方式
- Core: 每个物理CPU的核心数
- LCPU: 逻辑CPU,即CPU的线程数,开启超线程功能后:LCPU=2*Core
- vCPU: 给 VM 分配的虚拟CPU的数量
任一时间,每一个LCPU只能为一个vCPU提供资源(Scheduler)
一台VM只有所有的vCPU均获得LCPU资源后方可启动
每个虚拟机分配的vCPU <= 物理主机LCPU数量
通过在 ESXi 的命令行执行 esxtop 命令(类似 top 命令的执行效果),可以看到CPU的 ready值,显示的是一个百分比。
可以这样换算成一个具体值:20000(每20s采集一次)* 0.0003 (假如%RDY显示的值是0.03) = 6 ms
CPU ready 值应该 <= 2000 ms,否则,CPU竞争就很激烈了,肉眼可见的慢了。一般情况,这个值是几十或者几个。
CPU Ready的值指的是虚拟机就绪但无法获得物理 CPU 调度的时间百分比。CPU Ready的值越大,说明越多的虚拟机(或应用)要去运行但是没有可用的CPU资源去运行,这些虚拟机(或应用)只能等待CPU资源。
造成CPU Ready高的原因有哪些?主要有两个,一个是CPU超额分配严重,另外一个是设置了CPU限制。
分配CPU的原则:
- 1.根据实际业务情况,宁少勿多,够用就好(避免无谓的竞争和调度)
- 2.根据VM的业务关键性来分配vCPU(通常需要重启)和限额(实时设置,实时生效):
预留值:物理资源
限制值:物理资源
份额值:权重值(比值)。只有当资源竞争时,份额值才会生效。
关键业务:设置预留值,增加份额值
非关键业务:设置限制值,降低份额值
CPU是不可以被模拟的。
CPU Affinity 可以将虚拟机绑定在某些CPU上运行,但是不推荐使用,它会不能 vmotion、不能负载均衡。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...