Все
У меня возникла проблема на моем сервере с тех пор, как я перенес одну из своих виртуальных машин с Windows 2008 Server на Windows 7 (окончательная версия): хотя я назначил четыре ядра виртуальной машине, и она даже, кажется, их видит, кажется, она так думает. имеет два ядра!
Кто-нибудь может сказать мне, что здесь происходит? Я подумал, что это может быть какая-то несовместимость между KVM и Windows 7, но так как он видит виртуальные процессоры, я начинаю думать, что нет ... никаких улик?
Вот снимок экрана диспетчера процессов, показывающий только два ядра на одной коробке:
Ответы:
Я подозреваю, что процессоры представлены как одноядерные процессоры в отдельных сокетах. Windows 7 Ultimate поддерживает до двух систем сокетов, поэтому она будет использовать 2 процессора.
Я не знаю, можно ли настроить KVM для представления процессоров в виде одноядерного или двухъядерного процессора, что должно решить проблему.
источник
На libvirt 0.8.3, если вы наберете:
он перечислит топологию хоста:
Числа относятся к сокетам, ядрам на сокет и потокам на ядро. Добавьте эту строку к записи процессора в файле xml, чтобы окна могли использовать все 4 ядра, например:
источник
<topology sockets='1' cores='4' threads='1'/>
в мой XML.virsh capabilities | grep topology
показывает<topology sockets='1' cores='6' threads='2'/>
. CRITICAL: выполнил a,kill -HUP nnnnn
где nnnnn - PID моего процесса libvirtd. Запустил ВМ. Это сработало. +1! Благодарность! ... Но не забудьте пнуть libvirtd с помощью сигнала HUP или перезапуска!Настройки топологии полностью поддерживаются в virt-manager начиная с Ubuntu 15.04.
От virt-manager> Процессоры> Топология:
Следующее создается из вышеуказанных настроек в virt-manager. Вам не нужно вводить их с помощью virsh edit.
Топология перестала распознаваться окнами после обновления и снова ограничивает виртуальные ЦП до 2 сокетов.
Чтобы это исправить, используйте «virsh edit», чтобы скрыть функцию kvm и добавить функции hyperv. После полного выключения и перезагрузки Windows VM снова распознает несколько процессоров.
Почему моя виртуальная машина Windows 7, работающая под управлением Linux KVM, не использует все виртуальные процессоры?
источник
В RHEL / CentOS 5.5 (kvm> = 83-164.el5) бинарный файл kvm также поддерживает опцию «-smp N, cores = N» (в пакете есть патчи backport); однако версия libvirt не поддерживает элемент <topology> в доменном XML. Обходным путем является создание сценария-оболочки для / usr / libexec / kvm, который добавляет соответствующую опцию и указывает этот сценарий в элементе <emulator> вместо пути по умолчанию.
источник
Стоит отметить, что Ubuntu 10.4 (Lucid) имеет версию 0.7.5 libvirt, а поддержка топологии была добавлена в libvirt в версии 0.7.6. Ubuntu 10.10 (Maverick) имеет libvirt 0.8.3 и поэтому должен иметь возможность напрямую поддерживать спецификацию топологии в XML без оболочки.
источник