Как узнать закрепленные vCPU?

Я работаю над настройкой, в которой я запускаю виртуальную машину Ubuntu на хосте Fedora 18, используя QEMU/KVM и libvirt. Теперь я прикрепил 2 виртуальных процессора к своей виртуальной машине. Я вижу закрепленные виртуальные процессоры с помощью virsh. Но есть ли другой способ узнать это? В идеале я хочу написать функцию, которая будет возвращать количество/идентификатор закрепленных виртуальных ЦП.


person Pensu    schedule 21.06.2013    source источник


Ответы (1)


Вы можете использовать элемент в доменном XML, чтобы определить, какие закрепленные процессоры для какого vcpu. см. раздел Настройка ЦП. По умолчанию виртуальный ЦП закреплен за всеми физическими ЦП.

Например:

<cputune>
<vcpupin vcpu="0" cpuset="1-4,^2"/>
<vcpupin vcpu="1" cpuset="0,1"/>
</cputune>
person shawnzhu    schedule 24.06.2013
comment
На самом деле я хочу знать, что если есть какой-то способ написать API, который может вернуть мне общее количество закрепленных процессоров в системе. Предположим, я запускаю 2 виртуальные машины, теперь для каждой виртуальной машины есть отдельный файл XML. Я хочу знать, сколько процессоров было закреплено на этом хосте. - person Pensu; 24.06.2013
comment
Согласно libvirt, вы можете использовать метод virDomainGetVcpuPinInfo, и существует ряд языковые привязки, которые вы можете выбрать. Как правило, вы можете использовать команду taskset, чтобы запросить ваш процесс виртуальной машины на гипервизоре, чтобы увидеть, какой закрепленный ЦП он использует, например: taskset -c -p 1366 (предположим, что ваш PID процесса qemu равен 1366) - person shawnzhu; 25.06.2013
comment
Большое спасибо, чувак. Это работает. Не обращайте внимания на то, что я спрашиваю, но у меня есть еще одна проблема. XML-файл моей виртуальной машины имеет атрибут vCPU, определенный как: ‹vcpu place='static' cpuset='1,2,3'›3‹/vcpu› Теперь, когда я попробовал набор задач, он показывает сходство как 0-3. - person Pensu; 25.06.2013