查看: 4498|回复: 0

[教程说明] VM管理器 KVM cpu核心数问题和ovs网络下流量异常

[复制链接]
发表于 2022-5-7 22:39:09 | 显示全部楼层 |阅读模式
本帖最后由 yksam 于 2022-5-7 22:42 编辑

本教程针对有一定基础的用户,不是保姆级教程。真·小白问题,比如“ssh是什么”之类的请求助百度

VM管理器中创建Windows虚拟机时,有可能出现虚拟机只认出两个核心的情况,这个问题只发生在消费级Windows系统(比如Win10)中,Windows Server和Linux发行版则不会发生。

问题的成因在于默认情况下KVM会把每个核心都配成一个CPU插槽,而消费级Windows系统只支持两个CPU插槽(在任务管理器中能看到认成了两个插槽),而Windows Server和Linux对CPU插槽的上限更高,如Windows Server 2022支持64插槽,跑在J4125上的KVM根本撞不到这个瓶颈。

解决方法是手动指定CPU拓扑。
ssh登陆UNAS,切换root账号,注意以下要在目标虚拟机关机状态下操作
  1. virsh edit <虚拟机名>
复制代码

比如:
  1. virsh edit Win11
复制代码


找到<cpu>标签,加一条手动指定拓扑(topology那条,上下内容可能有其他配置而不太一样)。各项配置什么意思自行百度,只需要注意这里的sockets*dies*cores*threads不要超过之前设置的虚拟内核数,如果和你的宿主机设置一致(似乎)能获得更好性能。
保存退出
  1. <cpu mode='host-model' check='partial'>
  2.   <topology sockets='1' dies='1' cores='4' threads='1'/>
  3. </cpu>
复制代码


启动虚拟机,然后进虚拟机系统重启虚拟机!!!
重启虚拟机!!!
重启虚拟机!!!

因为Windows的UEFI快速启动特性,很多硬件修改不会立即生效,需要重启虚拟机!!!强制Windows重走完整开机流程扫描硬件改动。


KVM OVS

UNAS6新增了ovs网络支持,KVM在添加ovs网络之后却有可能出现虚拟机内网卡记录到异常的大流量,甚至记录到的流量远远超过了网卡最大支持值,比如我的虚拟机里千兆网卡持续出现好几G的上下行。这显然不正常,但是我用Wireshark抓包却抓不到任何异常的包,同网络别的机器也没有异常包;按理这么高的IO同时会消耗大量CPU,但是CPU的使用率没有任何异常,最终我怀疑仅是记录异常。

几经调试之后,最终确认是e1000e网卡和ovs网络似乎存在兼容性问题,将虚拟机网卡型号调整为e1000后不再有异常流量数据。

虚拟机关机后编辑网卡

虚拟机关机后编辑网卡

虚拟机关机后编辑网卡

顺便一提有关KVM网卡型号的选择

vm管理器创建虚拟机时的默认网卡型号是rtl8139,螃蟹家的古董百兆网卡型号,兼容性没得说,但是它是个百兆网卡。
换成别的型号就是基础操作。我常用的网卡型号有两个e1000e(现在改为e1000)和virtio。e1000e(e1000)是因特尔的网卡型号,千兆网卡,基本什么系统都兼容,只是这次e1000e遇到了异常大流量,以后换用e1000;virtio是kvm针对linux发行版的虚拟机的针对性优化网卡,没有链路速度一说,能发挥多少性能全看你硬件,J4125同一ovs下互联轻松破万兆,缺点是仅支持Linux,还不能是很旧的版本。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|万由科技 ( 浙ICP备10004788号-13 )

GMT+8, 2024-4-26 06:41 , Processed in 0.061637 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表