e1000とvirtio-pciドライバの性能比較

e1000とvirtio-pciドライバの性能比較

virtio-pciドライバのパフォーマンスを比較するために、次の設定を指定しましたe1000

Virtioテスト設定

virtio-pciと比較してスループットが高いと予想していましたが、e1000パフォーマンスは同じです。

以下を使用してテストしますvirtio-pci192.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 Hat, Inc Device 0001
    Physical Slot: 3
    Flags: bus master, fast devsel, latency 0, IRQ 11
    I/O ports at c000 [size=32]
    Memory at febd1000 (32-bit, non-prefetchable) [size=4K]
    Expansion ROM at feb80000 [disabled] [size=256K]
    Capabilities: [40] MSI-X: Enable+ Count=3 Masked-
    Kernel driver in use: virtio-pci

root@PC1:~# iperf -c 192.168.0.126 -d -t 30 -l 64
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
------------------------------------------------------------
Client connecting to 192.168.0.126, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.129 port 41573 connected with 192.168.0.126 port 5001
[  5] local 192.168.0.129 port 5001 connected with 192.168.0.126 port 44480
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-30.0 sec   126 MBytes  35.4 Mbits/sec
[  5]  0.0-30.0 sec   126 MBytes  35.1 Mbits/sec
root@PC1:~# 

以下を使用してテストしますe1000192.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: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 03)
    Subsystem: Red Hat, Inc QEMU Virtual Machine
    Physical Slot: 3
    Flags: bus master, fast devsel, latency 0, IRQ 11
    Memory at febc0000 (32-bit, non-prefetchable) [size=128K]
    I/O ports at c000 [size=64]
    Expansion ROM at feb80000 [disabled] [size=256K]
    Kernel driver in use: e1000

root@PC1:~# iperf -c 192.168.0.126 -d -t 30 -l 64
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
------------------------------------------------------------
Client connecting to 192.168.0.126, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.129 port 42200 connected with 192.168.0.126 port 5001
[  5] local 192.168.0.129 port 5001 connected with 192.168.0.126 port 44481
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-30.0 sec   126 MBytes  35.1 Mbits/sec
[  5]  0.0-30.0 sec   126 MBytes  35.1 Mbits/sec
root@PC1:~# 

大規模パケットの場合、両方のドライバの帯域幅は約900Mbpsです。

理論的には、より高い性能がvirtio-pci発揮される時はいつですか?とe1000同じパフォーマンスが表示されるのはなぜですかvirtio-pci

答え1

PCIにストレスを与えない帯域幅テストを実施しました。

同時セッションが多い環境をシミュレートする必要があります。そこで違いを見ることができます。

おそらく-P400これらのテストはiperfを使用してシミュレートできます。

関連情報