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

Virtualbox, низкая скорость загрузки с использованием nat

Я запускаю Virtualbox на сервере (хосте) Ubuntu 12.04, и я запускаю Windows 7 в качестве гостевой ОС. Я использую (виртуальную) сетевую карту Intel PRO / 1000 MT.

Я получаю хорошую производительность сети при загрузке с использованием сетевых настроек nat и моста, но скорость загрузки очень низкая при использовании nat.

Я привязал это к разным серверам, одному совершенно новому, а другому несколько лет назад, оба дали одинаковый результат.

Если вы можете объяснить это поведение или у вас есть идеи для дальнейшего тестирования, которое я могу провести, дайте мне знать.

Я использовал следующую настройку:

modifyvm <vm> --natsettings1 1500,1024,1024,1024,1024

Это то, что я придумал на основе http://www.virtualbox.org/manual/ch09.html#nat-adv-settings

--natsettings<1-N> [<mtu>],[<socksnd>],[<sockrcv>],[<tcpsnd>], [<tcprcv>]

Похоже, что разработчик сделал проблему с преобразованием единиц измерения скорости отправки и скорости загрузки. По умолчанию "tcprcv" намного выше, чем "tcpsnd".

В Ubuntu 14.04 мне пришлось использовать virtio Тип сетевой карты для получения приличной скорости от VirtualBox:

modifyvm --nictype1 virtio

Я провел небольшой тест.

= Сводка =

  1. По возможности используйте мостовой адаптер, он намного быстрее NAT.

  2. Для пропускной способности при нескольких подключениях (победитель):

    --natsettings1 1500,64,64,64,1024
    
  3. Для пропускной способности при одном подключении:

    --nictype1 Am79C973
    
  4. Я слышал хорошие отзывы о virtio в других средах.

= Подробные измерения =

    # host os: windows7
    # guest os: ubuntu14

    # natsettings: $mtu,$socksnd,$sockrcv,$tcpsnd,$tcprcv
    # list of space separated results in Mbit/s from:
    # iperf -c other-box -P $x

    # --natsettings 16000,1024,1024,1024,1024
    # https://twitter.com/alphazo/status/142200878068277248
    # x:=1 :  70 100 120  97  99
    # x:=4 : 574 517 519 497 548
    # x:=8 : 552 585 509 613 597

    # --natsettings 16000,128,128,0,0
    # http://en.helpdoc-online.com/virtualbox_4.1.2/source/ch09s11.html
    # x:=1 :  57  48  52  46  54
    # x:=4 : 150 146 134 154 182 183
    # x:=8 : 204 171 277 195 186

    # --natsettings 1500,1024,1024,1024,1024
    # http://serverfault.com/questions/447775/virtualbox-slow-upload-speed-using-nat/450734#450734
    # x:=1 :  67  69  74  86  63
    # x:=4 : 514 520 614
    # x:=8 : 549 579 572

    # --natsettings 1500,64,64,64,1024
    # https://www.virtualbox.org/ticket/10034?cversion=0&cnum_hist=8
    # http://www.kiwix.org/wiki/Black%26White_Project/Compilation_Farm/Setup
    # x:=1 :  99  74  71  85  96 119 103  83 107  80
    # x:=4 : 647 696 688 677 701 540 582 498 510 533
    # x:=8 : 610 666 622 607 677 586 510 528

    # --natsettings 1500,64,64,64,2048 (my experiment 7)
    # x:=1 :  81  62  57
    # x:=4 : 179 146 151

    # --natsettings 1500,64,64,64,512 (my experiment 8)
    # x:=1 :  55  63  75
    # x:=4 : 377 380 477
    # x:=8 : 412 544 485
    # x:=16: 174 379 376

    # --natsettings 1500,64,64,64,1024 (repeat)
    # x:=4 : 673 680 745

    # --natsettings 16000,64,64,64,2048 (my experiment 9)
    # x:=1 :  48  47  59
    # x:=4 : 123 149

    # --natsettings 1500,64,64,64,1280 (my experiment 10)
    # x:=1 :  43  47  46
    # x:=4 : 145 149 159

    # --natsettings 1500,64,64,64,768 (my experiment 11)
    # x:=1 :  58  79  95
    # x:=4 : 566 470 510

    # --natsettings 1500,64,64,64,640 (my experiment 12)
    # x:=1 :  75  88  56
    # x:=4 : 550 491 547
    # x:=8 : 549 532 

    # --natsettings 1500,128,128,128,1024 (my experiment 13)
    # x:=1 :  70 109  57
    # x:=4 : 503 480 549 596

    # --natsettings 1500,32,32,32,1024 (my experiment 14)
    # x:=1 :  73  81 108
    # x:=4 : 582 598 511
    # x:=8 : 550 675 563

    # --natsettings 16000,256,256,0,0
    # http://stackoverflow.com/questions/26389285/vagrant-waiting-for-chef-zero-to-start
    # x:=1 :  64  41  60  41
    # x:=4 : 143 184 147
    # x:=8 : 122 204 210

    # --natsettings 1500,4096,4096,1024,1024 (my experiment 1)
    # x:=1 : 130  93  87 109 104
    # x:=4 : 524 565 559 566
    # x:=8 : 556 607 552 543 536 588

    # --natsettings 16000,4096,4096,1024,1024 (my experiment 2)
    # x:=1 :  84  69  78  66  86
    # x:=4 : 517 525 575 540 560
    # x:=8 : 566 576 575

    # --natsettings 16000,8182,8182,8182,8182 (my experiment 3)
    # x:=1 :  53  60  53  48  47
    # x:=4 : 170 161 177
    # x:=8 : 175 203 253 177

    # --natsettings 16000,8182,8182,128,128 (my experiment 4)
    # x:=1 :  34  44  45  45
    # x:=4 : 221 236 196
    # x:=8 : 224 277 266

    # --natsettings 16000,128,128,8182,8182 (my experiment 5)
    # x:=1 :  48  38  50
    # x:=4 : 165 203 190
    # x:=8 : 207 186 204

    # default natsettings
    # x:=1 :  41  49  46  58  48
    # x:=4 : 171 152 176 149 161
    # x:=8 : 215 203 258 208 194

    # bridged adapter (82540EM)
    # x:=1 : 826 681 860 732 824 688 788 660 665 660 731 924 787 # fantastic speeds! :D
    # x:=4 : 666 691 689 680 684
    # x:=8 : 588 587 581 572 592

    # --nictype1 virtio (default natsettings)
    # x:=1 :  13  15  14
    # x:=4 :  70  82  50
    # x:=8 : 244  96 103
    # x:=16: 103 111 196 111  96

    # --nictype1 Am79C970A (default natsettings)
    # x:=4 : 210 233 237

    # --nictype1 Am79C973 (default natsettings)
    # x:=4 : 215 244 224

    # --nictype1 82540EM (default natsettings)
    # x:=4 : 165 153 200 184

    # --nictype1 82543GC (default natsettings)
    # x:=4 : 133 147 173

    # --nictype1 82545EM (default natsettings)
    # x:=4 : 153 130 151

    # --nictype1 Am79C973 --natsettings 1500,64,64,64,1024 (my experiment 6)
    # x:=1 : 172 118 145 117 107 # really good!
    # x:=4 : 372 368 364 372 370 # why so bad?
    # x:=8 : 358 360 363