21.11. KVM 网络性能
默认情况下,会为 KVM 虚拟机分配虚拟 Realtek 8139(rtl8139)NIC(网络接口控制器)。Red Hat Enterprise Linux 虚拟机默认分配了 virtio NIC,但未指定 Windows 客户机或客户机类型。
rtl8139 虚拟化 NIC 在大多数环境中可以正常工作,但该设备可能会遭遇一些网络的性能降级问题,如 10 千兆位以太网。
要提高性能,您可以切换到半虚拟网络驱动程序。
注意
请注意,虚拟化 Intel PRO/1000(
e1000
)驱动程序也作为仿真驱动程序选择提供支持。要使用 e1000
驱动程序,请将以下流程中的 virtio
替换为 e1000
。为了获得最佳性能,建议使用 virtio
驱动程序。
过程 21.4. 切换到 virtio 驱动程序
- 关闭客户端操作系统。
- 使用 virsh 命令编辑客户端的配置文件(其中
GUEST
是客户端的名称):# virsh edit
GUEST
virsh edit 命令使用 $EDITOR shell 变量来确定要使用哪个编辑器。 - 查找配置的网络接口部分。本节类似以下代码片段:
<interface type='network'> [output truncated] <model type='rtl8139' /> </interface>
- 将 model 元素的 type 属性从
'rtl8139'
改为'virtio'
。这会将 rtl8139 驱动程序改为 e1000 驱动程序。<interface type='network'> [output truncated] <model type=
'virtio'
/> </interface> - 保存更改并退出文本编辑器
- 重启客户端操作系统。
使用其他网络驱动程序创建新客户机
或者,也可以使用不同的网络驱动程序创建新 guest。如果您在通过网络连接安装客户机时遇到问题,则可能需要这样做。此方法要求您至少有一个虚拟机已创建(可能从 CD 或者 DVD 安装)以用作模板。
- 从现有 guest(在这个示例中,名为 Guest1)创建 XML 模板:
# virsh dumpxml Guest1 > /tmp/guest-template.xml
- 复制并编辑 XML 文件并更新唯一字段:虚拟机名称、UUID、磁盘镜像、MAC 地址以及任何其他唯一参数。请注意,您可以删除 UUID 和 MAC 地址行,virsh 将生成 UUID 和 MAC 地址。
# cp /tmp/guest-template.xml /tmp/new-guest.xml # vi /tmp/new-guest.xml
在网络接口部分添加模型行:<interface type='network'> [output truncated] <model type='virtio' /> </interface>
- 创建新虚拟机:
# virsh define /tmp/new-guest.xml # virsh start new-guest