LINUX.ORG.RU
ФорумAdmin

KVM и нестабильная сеть в гостевой

 ,


0

1

Доброго дня.

Хост машина: Debian Wheezy.

ii  kvm                                1:1.1.2+dfsg-6                amd64        dummy transitional package from kvm to qemu-kvm
ii  qemu-kvm                           1.1.2+dfsg-6                  amd64        Full virtualization on x86 hardware
ii  linux-image-3.2.0-4-amd64          3.2.51-1                      amd64        Linux 3.2 for 64-bit PCs

Хост: br0 - 10.1.1.1

Гостевые: tap0, tap1,.. внутри с eth0 и 10.1.1.x

Доступ в интернет через форвардинг в iptables:

iptables -t nat -A POSTROUTING -s 10.1.1.2/32 ! -d 10.1.1.0/24 -o eth0 -j SNAT --to-source 7.7.7.7

Все работает как надо. Только какие-то задержки наблюдаются, даже через ssh когда заходишь на гостевую (при пробросе 2222 с хоста на гостевой 22-й порт), словно пакеты пропадают. Без проброса с хоста на гостевую если зайти по ssh, то нет задержек.

С хоста через wget скорость 73.4M/s, с гостевой 18M/s и как-то «дёрганно».

Не могли бы вы подсказать с чем это может быть связано?

Для сети опции при старте kvm: -net tap,vlan=0,script=/kvm/machine.localhost-eth0.sh -net nic,vlan=0,macaddr=02:55:00:11:22:3A,model=virtio

В machine.localhost-eth0.sh кроме строк с ebtables есть:

#!/bin/sh
echo $1 >/kvm/machine.localhost-eth0.tap
/sbin/brctl addif br0 $1
/sbin/ifconfig $1 up
mtu=`/sbin/ifconfig br0 | grep MTU | sed -e 's/.*MTU://; s/ .*//'`
if [ "$mtu" != "" ]; then
    /sbin/ifconfig $1 mtu $mtu
fi

Смотреть в сторону MTU?

Ответ на: комментарий от petav

Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz

16GB RAM

[    1.628703] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
[    1.628894] r8169 0000:04:00.0: setting latency timer to 64
[    1.629001] r8169 0000:04:00.0: irq 44 for MSI/MSI-X
[    1.630675] r8169 0000:04:00.0: eth0: RTL8168e/8111e at 0xffffc9000187c000, 14:da:e9:ef:68:03, XID 0c200000 IRQ 44
[    1.630859] r8169 0000:04:00.0: eth0: jumbo features [frames: 9200 bytes, tx checksumming: ko]

Когда тестю из другого места через wget, то с хоста 10MB/s, а с гостя 6MB/s. Не могу понять никак в чем дело. Может MTU до 9000 сделать для kvm? Или не поможет?

Zapekankin ()
Ответ на: комментарий от petav

Да конфигурации и нет, через cloudmin делал.

Запускается так (одна из машин):

ionice -n0 /usr/bin/kvm -name test3\.localhost -m 256 -drive file=/kvm/test3.localhost.img,media=disk,index=0,if=virtio -boot c -net tap,vlan=0,script=/kvm/test3.localhost-eth0.sh -net nic,vlan=0,macaddr=02:54:00:2A:FD:F4,model=e1000 -vnc :5,password -usbdevice tablet -monitor tcp:127.0.0.1:40003,server -smp 4 >/kvm/test3.localhost.console 2>&1 </dev/null & sleep 3 ; /usr/bin/nc.pl --sleep 3 localhost 40003 </kvm/test3.localhost.monitor >>/kvm/test3.localhost.console 2>&1

model для net пробовал model=virtio ставить, тоже самое.

В /kvm/test3.localhost-eth0.sh вот это:

#!/bin/sh
echo $1 >/kvm/test3.localhost-eth0.tap
/sbin/brctl addif br0 $1
/sbin/ifconfig $1 up
mtu=`/sbin/ifconfig br0 | grep MTU | sed -e 's/.*MTU://; s/ .*//'`
if [ "$mtu" != "" ]; then
    /sbin/ifconfig $1 mtu $mtu
fi
ebtables -D INPUT -j 1384785427318240 2>/dev/null
ebtables -D OUTPUT -j 1384785427318240 2>/dev/null
ebtables -D FORWARD -j 1384785427318240 2>/dev/null
ebtables -X 1384785427318240 2>/dev/null
true
Zapekankin ()
Ответ на: комментарий от Zapekankin

Я полагал что virtio не хватает. Тогда надо вчитаться.

petav ★★★★★ ()
Ответ на: комментарий от Deleted

Он самый, hetzner.

Кстати, добавил памяти в виртуалку до 2Гб - через wget 30M/s получил вместо 18M/s. ;)) Убрал RAM до 512мб - 18M/s. Мистика... :))

Zapekankin ()
Ответ на: комментарий от Zapekankin

Во-первых, хецнер ставит десктопные мамки со старым биосом, по идее, перед пуском... гхм... «сервера» в... гхм... «продакшн», фирмварь желательно обновить (это же касается и дисков).

Во-вторых, мамки с реалтеком, который лучше не использовать с родным ядерным r8169. http://wiki.hetzner.de/index.php/Installation_des_r8168-Treibers/ru

Deleted ()
Ответ на: комментарий от Deleted

Да как-то приходится использовать то, что есть... hetzner как бюджетный вариант вполне себе так. Спасибо за картинку, забавная. Такие системники стоят... =))

А так нормально канал отрабатывается на хосте, только из гостевых скорость ниже.

Zapekankin ()
27 декабря 2013 г.
28 июня 2014 г.
Ответ на: комментарий от Zapekankin

Решилось через sysctl.

net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.ipv4.tcp_rmem=4096 87380 16777216
net.ipv4.tcp_wmem=4096 65536 16777216

После этого скорость стала идентичной как на хост-машине.

Zapekankin ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.