A.12. KVM 网络性能
默认情况下,为 KVM 虚拟机分配一个虚拟 Realtek 8139(rtl8139)NIC(network interface controller)。
rtl8139 虚拟化 NIC 在大多数环境中正常工作,但这个设备可能会因某些网络(如 10 Gigabit Ethernet)上的性能下降。
要提高性能,您可以切换到半虚拟网络驱动程序。
注意
请注意,虚拟化 Intel PRO/1000(
e1000
)驱动程序也支持作为仿真驱动程序选择。要使用 e1000
驱动程序,请将以下流程中的 virtio
替换为 e1000
。为了获得最佳性能,建议使用 virtio
驱动程序。
过程 A.6. 切换到 virtio 驱动程序
- 关闭客户端操作系统。
- 使用 virsh 命令编辑 guest 的配置文件(其中
GUEST
是 guest 的名称):# virsh edit
GUEST
virsh edit 命令使用 $EDITOR shell 变量来确定要使用哪些编辑器。 - 找到配置的网络接口部分。本节类似以下片段:
<interface type='network'> [output truncated] <model type='rtl8139' /> </interface>
- 将 model 元素的 type 属性从
'rtl8139'
更改为'virtio'
。这会将 rtl8139 驱动程序中的驱动程序改为 virtio 驱动程序。<interface type='network'> [output truncated] <model type=
'virtio'
/> </interface> - 保存更改并退出文本编辑器
- 重启客户端操作系统。
使用其他网络驱动程序创建新客户端
或者,也可以使用其他网络驱动程序创建新 guest。如果您在通过网络连接安装 guest 时,可能需要这样做。这个方法要求您至少有一个 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