Конфигурация сети в моей настройке Xen следующая:
Моя проблема в том, что когда я загружаю большой файл из Интернета по HTTP в dom0, скорость загрузки нестабильна. Он постепенно увеличивается, затем останавливается на несколько секунд и снова начинает постепенно расти (и все это в цикле до завершения загрузки). Во время остановок кажется, что вся сеть заблокирована на машине (это замечено в интерактивных сеансах 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
Если я выполняю ту же загрузку, но использую (не кэширующий) HTTP-прокси, который работает в брандмауэре domU, скорость загрузки будет стабильной при максимальном значении.
Как я могу избежать этой проблемы?
Я подозреваю, что это ошибка в сетевом стеке, но мне нужна помощь, чтобы диагностировать ее более точно (и, возможно, найти обходной путь).
Это система Debian Etch с Xen 3.2 и ядром Debian Lenny 2.6.26-xen-686 (backports). Мосты создаются с помощью / 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 '')
Настройка сети Xen для domU выполняется с помощью:
# 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 перенаправляет на domU через xenbrD:
# 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 больше памяти. У меня здесь на работе похожая установка, и, поскольку мы используем ее для измерения скорости, я очень заинтересован в том, что вы узнаете об этом (хотя у меня здесь нет проблемы)
Это произойдет, если у вас мало памяти ... Проверьте использование памяти, а также использование процессора. Если у вас много io_wait, получите больше памяти и выделите больше для dom0.
Может быть, ксен связан. Но не могли бы вы проверить с другим клиентом, кроме dom0? Другой domU работает? Может быть, это проблема в настройке NAT, например проблема с mss / mtu?