ネットワーク スループットとレイテンシをテストしていますが、測定値が期待どおりかどうか気になっています。テストでは、ホストとゲストの両方にカーネル 3.5.2-3.fc17.86_64 を使用した Fedora 17 を使用しました。
ギガビット インターフェイスを使用してホストから LAN 上の外部サーバーに ping を実行すると、結果は次のようになります。
# 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
ゲストから LAN 上の同じ外部ホストに ping を実行すると、遅延がはるかに大きくなるようです。
# 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
(テスト中、LAN、ホスト、ゲストはアイドル状態になります。)
vhost_net および macvtap モジュールがホストにロードされ、qemu が -netdev vhost=on オプションで (libvirtd によって) 起動されました。
これは予想どおりで正常なのでしょうか、それとも他の人はもっと良い遅延を目にしているのでしょうか? 改善するために何か試すことはできますか? 他の人はどのような遅延を目にしているのでしょうか?
答え1
ロードされたモジュールは、VM が適切に構成されていることを意味するわけではありません。テストしている VM は正確にはどのようにセットアップされていますか?
RHEL 5、ブリッジング、virtio_net を使用すると、物理ホスト間のレイテンシは約 0.1 ミリ秒、VM 内から ping を実行するとレイテンシは約 0.18 ミリ秒になります。シンプルなブリッジで、最適化や変更はなく、かなり古い RHEL 5 スタックです。