我做了以下设置来比较virtio-pci
和e1000
驱动程序的性能:
virtio-pci
与 相比e1000
,我希望看到更高的吞吐量,但它们的表现相同。
使用virtio-pci
(192.168.0.126
配置为T60
并且192.168.0.129
配置为PC1
) 进行测试:
root@PC1:~# grep hype /proc/cpuinfo
flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 syscall nx lm rep_good nopl pni vmx cx16 x2apic hypervisor lahf_lm tpr_shadow vnmi flexpriority ept vpid
root@PC1:~# lspci -s 00:03.0 -v
00:03.0 Ethernet controller: Red Hat, Inc Virtio network device
Subsystem: Red …
Run Code Online (Sandbox Code Playgroud) $ uname -r
5.0.9-301.fc30.x86_64
$ findmnt /
TARGET SOURCE FSTYPE OPTIONS
/ /dev/vda3 ext4 rw,relatime,seclabel
$ sudo fstrim -v /
fstrim: /: the discard operation is not supported
Run Code Online (Sandbox Code Playgroud)
相同的 VM,但在将磁盘从 VirtIO 切换到 SATA 之后:
$ findmnt /
TARGET SOURCE FSTYPE OPTIONS
/ /dev/sda3 ext4 rw,relatime,seclabel
$ sudo fstrim -v /
/: 5.3 GiB (5699264512 bytes) trimmed
Run Code Online (Sandbox Code Playgroud)
虚拟磁盘由 QCOW2 文件支持。我正在使用 virt-manager/libvirt。libvirt-daemon 版本为 4.7.0-2.fc29.x86_64。我的主机当前运行的是 vanilla 内核构建 5.1 (ish),所以目前它有点“定制”,但我从一个库存的 Fedora 内核配置开始构建它。
有没有办法以某种方式在 VirtIO 上启用丢弃支持?或者代码只是不支持它?我不一定需要如何启用它的确切说明,但我感到惊讶和好奇,我想要一个可靠的答案:-)。