latencia de ping usando vhost_net, macvtap y virtio

latencia de ping usando vhost_net, macvtap y virtio

He estado probando el rendimiento y la latencia de la red y me preguntaba si mis mediciones son las esperadas. Para la prueba, utilicé Fedora 17 tanto para el anfitrión como para el invitado, usando el kernel 3.5.2-3.fc17.86_64.

Al hacer ping a un servidor externo en la LAN desde el host, utilizando una interfaz gigabit, los resultados son:

# ping -c 10 172.16.1.1
PING 172.16.1.1 (172.16.1.1) 56(84) bytes of data.
64 bytes from 172.16.1.1: icmp_req=1 ttl=64 time=0.109 ms
64 bytes from 172.16.1.1: icmp_req=2 ttl=64 time=0.131 ms
64 bytes from 172.16.1.1: icmp_req=3 ttl=64 time=0.145 ms
64 bytes from 172.16.1.1: icmp_req=4 ttl=64 time=0.116 ms
64 bytes from 172.16.1.1: icmp_req=5 ttl=64 time=0.110 ms
64 bytes from 172.16.1.1: icmp_req=6 ttl=64 time=0.114 ms
64 bytes from 172.16.1.1: icmp_req=7 ttl=64 time=0.112 ms
64 bytes from 172.16.1.1: icmp_req=8 ttl=64 time=0.117 ms
64 bytes from 172.16.1.1: icmp_req=9 ttl=64 time=0.119 ms
64 bytes from 172.16.1.1: icmp_req=10 ttl=64 time=0.128 ms

--- 172.16.1.1 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 8999ms
rtt min/avg/max/mdev = 0.109/0.120/0.145/0.011 ms

Al hacer ping al mismo host externo en la LAN desde el invitado, la latencia parece ser mucho mayor:

# ping -c 10 172.16.1.1
PING 172.16.1.1 (172.16.1.1) 56(84) bytes of data.
64 bytes from 172.16.1.1: icmp_req=1 ttl=64 time=0.206 ms
64 bytes from 172.16.1.1: icmp_req=2 ttl=64 time=0.352 ms
64 bytes from 172.16.1.1: icmp_req=3 ttl=64 time=0.518 ms
64 bytes from 172.16.1.1: icmp_req=4 ttl=64 time=0.351 ms
64 bytes from 172.16.1.1: icmp_req=5 ttl=64 time=0.543 ms
64 bytes from 172.16.1.1: icmp_req=6 ttl=64 time=0.387 ms
64 bytes from 172.16.1.1: icmp_req=7 ttl=64 time=0.348 ms
64 bytes from 172.16.1.1: icmp_req=8 ttl=64 time=0.364 ms
64 bytes from 172.16.1.1: icmp_req=9 ttl=64 time=0.345 ms
64 bytes from 172.16.1.1: icmp_req=10 ttl=64 time=0.334 ms

--- 172.16.1.1 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 8999ms
rtt min/avg/max/mdev = 0.206/0.374/0.543/0.093 ms

(La LAN, el anfitrión y el invitado están inactivos durante las pruebas).

Los módulos vhost_net y macvtap se cargan en el host y qemu se inició (mediante libvirtd) con la opción -netdev vhost=on.

¿Es esto esperado y normal, o otros ven mejores latencias? ¿Puedo probar algo para mejorarlo? ¿Qué latencias ven los demás?

Respuesta1

Los módulos cargados no significan una máquina virtual bien configurada. ¿Cómo está configurada exactamente la máquina virtual que estás probando?

Al utilizar RHEL 5, puentes y virtio_net, obtengo una latencia de ~0,1 ms entre hosts físicos y una latencia de ~0,18 ms cuando hago ping desde dentro de una máquina virtual. Puente simple, sin optimizaciones ni modificaciones, y una pila RHEL 5 bastante antigua.

información relacionada