задержка пинга с использованием vhost_net, macvtap и virtio

задержка пинга с использованием vhost_net, macvtap и virtio

Я тестировал пропускную способность сети и задержку, и мне было интересно, соответствуют ли мои измерения ожидаемым. Для теста я использовал Fedora 17 как для хоста, так и для гостя, используя ядро ​​3.5.2-3.fc17.86_64.

Пинг внешнего сервера в локальной сети с хоста с использованием гигабитного интерфейса дает следующие результаты:

# 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

При попытке пинга того же внешнего хоста в локальной сети из гостевой ОС задержка, по-видимому, значительно выше:

# 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

(Во время тестов локальная сеть, хост и гость бездействуют.)

Модули vhost_net и macvtap загружены на хост, а qemu запущен (с помощью libvirtd) с опцией -netdev vhost=on.

Это ожидаемо и нормально, или другие видят лучшие задержки? Могу ли я попробовать что-нибудь, чтобы сделать это лучше? Какие задержки видят другие?

решение1

загруженные модули не означают хорошо настроенную VM. Как именно настроена VM, которую вы тестируете?

Используя RHEL 5, мост и virtio_net, я получаю задержку ~0,1 мс между физическими хостами и задержку ~0,18 мс при пинге изнутри виртуальной машины. Простой мост, без оптимизаций или изменений и довольно старый стек RHEL 5.

Связанный контент