解决Openstack 创建Windows虚拟机只有2个CPU问题

问题描述

OpenStack部署出来的Windows虚拟机,CPU内存很足(如16C48G),但是使用起来依然卡顿。

问题分析

登录虚拟机系统检查cpu信息发现,在设备管理器里能查看到16个cpu,但是实际使用时,只有2个cpu。所以系统实际只有2个cpu在工作,导致资源耗尽,影响正常使用。

解决方案概述

经调查确定,该问题是由libvirt引起。配置2核以上时,运行windows桌面版的虚拟机,只能识别2核。

方案1:通过修改该虚拟机的xml文件解决。

方案2:通过修改改虚拟机关联的flavor元数据解决。

具体实施步骤

实施方案1:

步骤1/4:定位实例

通过nova list和nova show查看实例名称,定位实例所在计算节点:

如上图,实例名称:instance-00000037;所在计算节点:control01

步骤2/4:修改实例

登录计算节点control01(如果是容器化部署,进入nova_libvirt容器下)。

在/etc/libvirt/qemu/路径下,用virsh edit instance-00000037修改实例xml文件。

需修改如下字段:

<topology sockets='2' cores='8' threads='1'/>

注:该字段表示2路cpu,每一路8个核,单线程。

步骤3/4:定义实例

使用virsh define保存修改:virsh define /etc/libvirt/qemu/instance-00000037.xml

步骤4/4:重启实例
  1. 使用virsh destroy instance-00000037关机
  2. 使用virsh destroy instance-00000037开机

实施方案2:

步骤1/2:flavor添加元数据
openstack flavor set {flavorName} \
     --property hw:cpu_sockets=2 \
     --property hw:cpu_cores=8 \
     --property hw:cpu_threads=1

注:该字段表示2路cpu,每一路8个核,单线程。

步骤2/2:重建虚拟机

优化效果

查看CPU核数

实例启动完成后,再次登录系统,检查CPU核数:

如上图,系统中实际使用16个cpu。

绑定CPU

为了防止应用进程将16核都占满。先分配0~7这个8个核给该进程使用。这样即使这个8个核都占满,总体CPU使用率也只有50%,不会影响系统正常使用。

如上图,指定CPU 0~7运行xampp。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

交付小将

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值