Xenセットアップのネットワーク構成は次のとおりです。
私の問題は、dom0でHTTPを使用してインターネットから大きなファイルをダウンロードすると、ダウンロード速度が安定しないことです。それは徐々に上昇し、その後数秒間停止し、再び徐々に上昇し始めます(そしてダウンロードが完了するまでこれはすべてループします)。ストール中は、マシン上ですべてのネットワークがブロックされているように見えます(インタラクティブなSSHセッションで通知されます)。
dom0 │domU
wget │
↕ │
eth2↔xenbrD(192.168.78.2)↔vif2.2←┼→eth2(192.168.78.1/24)
│ ↕ masquerading
eth0↔xenbrE↔vif2.0←——————————————┼→eth0(192.168.1.20/24)
↕
internet
同じダウンロードを実行するが、ファイアウォールdomUで実行される(非キャッシュ)HTTPプロキシを使用する場合、ダウンロード速度は最大値で安定しています。
どうすればこの問題を回避できますか?
これはネットワークスタックのバグだと思いますが、より正確に診断するための支援が必要です(そしておそらく回避策を見つけてください)。
これは、Xen3.2とDebianLennyの2.6.26-xen-686カーネル(バックポート)を備えたDebianEtchシステムです。ブリッジは/ etc/network/interfacesで作成されます。
auto lo
iface lo inet loopback
auto xenbrE
iface xenbrE inet manual
bridge_ports eth0
bridge_maxwait 0
auto xenbrI
iface xenbrI inet manual
bridge_ports eth1
bridge_maxwait 0
auto xenbrD
iface xenbrD inet static
address 192.168.78.2
netmask 255.255.255.0
gateway 192.168.78.1
bridge_ports eth2
bridge_maxwait 0
Xendの構成は複雑ではありません。
# grep '^(' /etc/xen/xend-config.sxp
(network-script network-dummy)
(vif-script vif-bridge)
(dom0-min-mem 150)
(dom0-cpus 0)
(vncpasswd '')
DomUのXenネットワークセットアップは次の方法で行われます。
# grep vif /etc/xen/xm.slis
vif = [ 'mac=00:16:3e:14:85:11, bridge=xenbrE', 'mac=00:16:3e:14:85:12, bridge=xenbrI', 'mac=00:16:3e:14:85:13, bridge=xenbrD' ]
そして、dom0の唯一のルーティングは、xenbrDを介してdomUにリダイレクトします。
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.78.0 0.0.0.0 255.255.255.0 U 0 0 0 xenbrD
0.0.0.0 192.168.78.1 0.0.0.0 UG 0 0 0 xenbrD
DomUでは、行われるiptables構成はiptables -t nat -A POSTROUTING -s 192.168.78.0/24 -o eth0 -j MASQUERADE
のみです。
私には本当にメモリの問題のように聞こえます。これは、ローカルプロキシが役立つ方法も説明します。なぜなら、それはすべてを少し失速させるので、カーネルがパケットの処理に追いつくことができるかもしれないからです。 Dom0にメモリを追加して、これを確認してください。私はここで同様の設定を行っていますが、速度測定に使用しているので、それについてあなたが見つけたものには非常に興味があります(ここでは問題は発生していませんが)
これは、メモリが不足している場合に発生します...メモリ使用量を確認し、CPU使用率も確認してください。 io_waitがたくさんある場合は、メモリを増やしてdom0に割り当てます。
多分xen関連。しかし、dom0以外の別のクライアントに確認できますか?別のdomUは機能していますか?これは、mss/mtuの問題のように、NATセットアップの問題でしょうか?