LINUX.ORG.RU

virtual box 32bit гость на 64 хосте - провал в производительности гостевой ОС


0

1

После перехода на 64bit ОС заметил, что 32битные системы в virtualbox стали работать на порядок медленнее, чем ранее на 32битном хосте. Виртуализации включены (отключение даёт ещё большее падение производительности), поддержка виртуализации в биосе включена. например, сборка пакета в гостевом окружении занимает в 2.5-4 раза больше времени, чем на хосте. Даже банальные проверки autotools (./configure) проходят медленнее в несколько раз. Почитал базу знаний на оффсайте, но там как-то мутно всё написано. В логах нашёл такое

Oct 20 19:03:32 nautilus kernel: [   13.865278] vboxdrv: Warning: 2.6.31+ kernel detected. Most likely the hardware performance     
Oct 20 19:03:32 nautilus kernel: [   13.865279] vboxdrv: counter framework which can generate NMIs is active. You have to prevent   
Oct 20 19:03:32 nautilus kernel: [   13.865280] vboxdrv: the usage of hardware performance counters by                              
Oct 20 19:03:32 nautilus kernel: [   13.865281] vboxdrv:   echo 2 > /proc/sys/kernel/perf_counter_paranoid                          
Oct 20 19:03:32 nautilus kernel: [   13.865509] VBoxDrv: dbg - g_abExecMemory=ffffffffa0def400                                      
Oct 20 19:03:32 nautilus kernel: [   13.865532] vboxdrv: fAsync=0 offMin=0x1a4 offMax=0x1c58                  

В В какой-то багзилле написано, что это грязный хак и так делать нельзя. Как быть, как повысить производительность гостя?

разве виртуалбокс не умеет паравиртуализацию? вмваре умеет, скорость такая же, как и на хосте

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

Выгружены.


lsmod
Module                  Size  Used by
hidp                   12661  1 
rfcomm                 34831  4 
sco                     8557  2 
bnep                   10247  2 
l2cap                  38322  21 hidp,rfcomm,bnep
vboxnetadp              4593  0 
vboxnetflt             13616  0 
vboxdrv              1739970  3 vboxnetadp,vboxnetflt
snd_seq                46941  0 
snd_seq_device          4925  1 snd_seq
cpufreq_stats           3751  0 
cpufreq_conservative     9100  0 
cpufreq_powersave        902  0 
cpufreq_performance      906  0 
cpufreq_ondemand        8422  0 
acpi_cpufreq            5481  0 
freq_table              2267  3 cpufreq_stats,cpufreq_ondemand,acpi_cpufreq
mperf                   1059  1 acpi_cpufreq
coretemp                5155  0 
nvidia              10897497  40 
iwl3945                75138  0 
iwlcore                79930  1 iwl3945
snd_hda_codec_realtek   263709  1 
joydev                  9556  0 
btusb                  10516  4 
mac80211              184039  2 iwl3945,iwlcore
snd_hda_intel          21054  1 
bluetooth              48050  10 hidp,rfcomm,sco,bnep,l2cap,btusb
cfg80211              141306  3 iwl3945,iwlcore,mac80211
snd_hda_codec          71038  2 snd_hda_codec_realtek,snd_hda_intel
sdhci_pci               6723  0 
snd_hwdep               5764  1 snd_hda_codec
sdhci                  15796  1 sdhci_pci
mmc_core               53491  1 sdhci
video                  18487  0 
led_class               2243  1 sdhci
psmouse                53525  0 
snd_pcm                68712  2 snd_hda_intel,snd_hda_codec
snd_timer              18066  2 snd_seq,snd_pcm
snd                    52267  10 snd_seq,snd_seq_device,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_timer
soundcore               5455  1 snd
rtc_cmos                9054  0 
intel_agp              30571  0 
rtc_core               14158  1 rtc_cmos
r8169                  37359  0 
processor              27869  3 acpi_cpufreq
snd_page_alloc          6617  2 snd_hda_intel,snd_pcm
mii                     3674  1 r8169
rtc_lib                 1746  1 rtc_core
i2c_i801                8715  0 
output                  1724  1 video
agpgart                27649  2 nvidia,intel_agp
thermal                11937  0 
rfkill                 15136  3 cfg80211,bluetooth
i2c_core               17910  2 nvidia,i2c_i801
thermal_sys            13350  3 video,processor,thermal
battery                 9708  0 
ac                      2867  0 
evdev                   8473  13 
wmi                     6806  0 
hwmon                   1385  2 coretemp,thermal_sys
serio_raw               3992  0 
button                  4621  0 
sg                     24235  0 

Unnamed_Hero ★★★
() автор топика
Ответ на: комментарий от KPSS

Не, не вкомпилен

zcat /proc/config.gz | grep KVM
CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_HAVE_KVM_EVENTFD=y
CONFIG_KVM_APIC_ARCHITECTURE=y
CONFIG_KVM_MMIO=y
CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m

Unnamed_Hero ★★★
() автор топика
Ответ на: комментарий от anonymous

А там всё ещё надо на левых сайтах выискивать патчи для ядерных модулей каждый раз после обновления ядра? Плюс, не могу понять - Воркстейшн платный или нет. Необходимо создавать виртуальные машины, а не только запускать.

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

>Плюс, не могу понять - Воркстейшн платный или нет

Емнип, на халяву ключ на две недели дается.

nnz ★★★★
()

ядро - само-криворуко-сборное?

Led ★★★☆☆
()

> virtualbox ... Виртуализации включены ... поддержка виртуализации в биосе включена

Вот в первом слове и содержится ошибка. Правильней использовать QEMU-KVM и libvirt и не мучаться. Там и паравиртуальный I/O работает, и тормозов меньше, и все «родное».

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

Проблема в том, что по специфике работы часто приходится работать на различных ОС с различными ОС в виртуалках, поэтому нужна совместимость с окошками...

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

использую бесплатный vmware-player, никакие патчи не ищу, всё летает, виртуальные машины создаются, что ещё надо? зачем workstation?

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

Как в старые добрые времена - вышло ядро, гугли патч. Поэтому я давно и перешёл на VirtualBox, что там по крайней мере собираются ядерные модули без танцев с бубнами.

make: Entering directory `/tmp/vmware-root/modules/vmmon-only'
make -C /lib/modules/2.6.35.6/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
          MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/linux-2.6.35.6'

  WARNING: Symbol version dump /usr/src/linux-2.6.35.6/Module.symvers
           is missing; modules will have no dependencies and modversions.

  CC [M]  /tmp/vmware-root/modules/vmmon-only/linux/iommu.o
/tmp/vmware-root/modules/vmmon-only/linux/iommu.c: В функции ‘IOMMU_SetupMMU’:
/tmp/vmware-root/modules/vmmon-only/linux/iommu.c:156: ошибка: неявная декларация функции ‘iommu_map_range’
/tmp/vmware-root/modules/vmmon-only/linux/iommu.c: В функции ‘IOMMUUnregisterDeviceInt’:
/tmp/vmware-root/modules/vmmon-only/linux/iommu.c:216: предупреждение: результат ‘device_attach’, декларированной с атрибутом warn_unused_result, игнорируется
/tmp/vmware-root/modules/vmmon-only/linux/iommu.c: В функции ‘IOMMU_VMCleanup’:
/tmp/vmware-root/modules/vmmon-only/linux/iommu.c:403: ошибка: неявная декларация функции ‘iommu_unmap_range’
make[2]: *** [/tmp/vmware-root/modules/vmmon-only/linux/iommu.o] Ошибка 1
make[1]: *** [_module_/tmp/vmware-root/modules/vmmon-only] Ошибка 2
make[1]: Leaving directory `/usr/src/linux-2.6.35.6'
make: *** [vmmon.ko] Ошибка 2
Unnamed_Hero ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.