Назад | Перейти на главную страницу

Почему постоянно меняющаяся скорость загрузки при сложной настройке сети xen?

Конфигурация сети в моей настройке 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?