wy168 发表于 2024-1-4 19:16:07

vSphere正确分配虚拟机CPU资源


    <p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;"><span style="color: green;">在VMware vSphere环境下,如果虚拟机系统的硬件资源配置不当,会对系统性能造成很大影响。如图所示,这里说的硬件资源配置主要包括CPU、内存、硬盘、网络适配器等。本文结合笔者亲身体会,分析如何正确的分配CPU资源。</span></p>
    <div style="text-align: left; margin-bottom: 10px;"><img src="https://p26-sign.toutiaoimg.com/pgc-image/141503cbbbc1493f96d130856accd03a~noop.image?_iz=58558&amp;from=article.pc_detail&amp;lk3s=953192f4&amp;x-expires=1704568216&amp;x-signature=tNjuHvlral4uak5bkTrB%2BK1xTLQ%3D" style="width: 100%; margin-bottom: 20px;"></div>
    <p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;"><strong style="color: blue;"><span style="color: green;">一、CPU资源说明</span></strong></p>
    <p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;"><span style="color: green;">VMware vSphere为虚拟机分配的CPU数是指逻辑处理器数。每台主机(服务器)拥有的逻辑处理器总数是不一样的,为物理CPU数量×每CPU的核(Core)数×超线程因子,当硬件支持超线程且在BIOS中开启超线程时,超线程因子为2,否则为1。例如某服务器为4C 8核并且支持超线程时,其CPU内核只有4×8=32个,插槽数即CPU数=4,vSphere可分配的该主机逻辑处理器数为4×8×2=64。如图所示:</span></p>
    <div style="text-align: left; margin-bottom: 10px;"><img src="https://p3-sign.toutiaoimg.com/pgc-image/7ce3c3204cbf4dbc9fd340753b8a35d3~noop.image?_iz=58558&amp;from=article.pc_detail&amp;lk3s=953192f4&amp;x-expires=1704568216&amp;x-signature=JHzO1uvYpwkD4WYvlWRwCvRM21E%3D" style="width: 100%; margin-bottom: 20px;"></div>
    <p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;"><span style="color: green;">主机4C 4核不支持超线程的示例如下:</span></p>
    <div style="text-align: left; margin-bottom: 10px;"><img src="https://p3-sign.toutiaoimg.com/pgc-image/9cdafe34903c44d6861b51c57efce311~noop.image?_iz=58558&amp;from=article.pc_detail&amp;lk3s=953192f4&amp;x-expires=1704568216&amp;x-signature=s%2BUj1TdtYwH%2BUiAoX2%2FNsCoPMNE%3D" style="width: 100%; margin-bottom: 20px;"></div>
    <p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;"><span style="color: green;">主机2C 6核不支持超线程的示例如下:</span></p>
    <div style="text-align: left; margin-bottom: 10px;"><img src="https://p3-sign.toutiaoimg.com/pgc-image/24ad76720b89441f95e6edc0b51ff1c1~noop.image?_iz=58558&amp;from=article.pc_detail&amp;lk3s=953192f4&amp;x-expires=1704568216&amp;x-signature=HvN15yx9TDEbjMv43n21P0V5AXY%3D" style="width: 100%; margin-bottom: 20px;"></div>
    <p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;"><strong style="color: blue;"><span style="color: green;">二、CPU资源分配</span></strong></p>
    <p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;"><span style="color: green;">vSphere给虚拟机分配的逻辑CPU数等于插槽数×每插槽的内核数,其中插槽数不能直接设置,可通过调整另两个数量来间接设置。如分配4个逻辑CPU给某虚拟机时,可以设置每个插槽的内核数为1,则插槽数自动设为4;如内核数为2,则插槽数为2;如内核数为4,则插槽数为1。</span></p>
    <div style="text-align: left; margin-bottom: 10px;"><img src="https://p3-sign.toutiaoimg.com/pgc-image/a84107b30c914218b8740c5440c4e162~noop.image?_iz=58558&amp;from=article.pc_detail&amp;lk3s=953192f4&amp;x-expires=1704568216&amp;x-signature=m5TTkayQa%2FpMbQkeOUYRTwKxAi0%3D" style="width: 100%; margin-bottom: 20px;"></div>
    <p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;"><strong style="color: blue;"><span style="color: green;">分配原则1</span></strong><span style="color: green;"> 插槽数不能超过主机的CPU数,否则多余的插槽数是无效的。</span></p>
    <p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;"><strong style="color: blue;"><span style="color: green;">分配原则2</span></strong><span style="color: green;"> 每个插槽的内核数不能超过每CPU的内核数×超线程因子。</span></p>
    <p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;"><span style="color: green;">在vSphere中,一旦违反以上两个原则之一,为虚拟机分配的实际CPU数将少于显示的CPU数。同时,在进行虚拟机vMotion时,也要考虑目的主机的硬件资源配置情况。</span></p>
    <p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;"><span style="color: green;">如上图,系统分配了4个CPU,1个插槽,实际上系统只能在一个物理CPU上运行,不利于系统运行</span><span style="color: green;">大</span><span style="color: green;">并发任务。</span></p>
    <p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;"><span style="color: green;">曾经遇到过一个类似情况,分配的CPU数为8,但每个插槽的内核数为8,插槽数为1,系统启动都很正常,但跑数据库应用时查询响应非常慢,用户不可接受。后经过优化,CPU总数8保持不变,但调整每个插槽的内核数为2,插槽数为4,性能明显好转,查询响应很快。</span></p>
    <p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;"><span style="color: green;"> 另:强烈建议选择“启用CPU热添加”,这样,当虚拟机因CPU计算资源不足时可以在线手动添加CPU数量而无需停机。如没选择该项,如欲增加CPU数,则只能先将虚拟机系统停机后手动添加。</span></p>
    <p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;"><strong style="color: blue;"><span style="color: green;">结束语</span></strong></p>
    <p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;"><span style="color: green;">在vSphere环境下为虚拟机配置CPU资源时,要充分考虑主机硬件CPU资源配置情况,同时结合虚拟机系统应用需求,合理分配CPU资源,做到既保证计算需求,又不浪费计算资源。</span></p>


页: [1]
查看完整版本: vSphere正确分配虚拟机CPU资源