LINUX.ORG.RU
ФорумAdmin

Объясните разницу между ядром (core) и потоком (thread) конкретно в KVM-виртуализации.

 , ,


0

4

В xml-конфиге гостя, присутствует строчка

<vcpu placement='static'>2</vcpu>

Которая отвечает за количество виртуальных процессоров. Чуть ниже есть раздел, в котором указываем сокеты, ядра, потоки…
Будет ли заметна разница в производительности, таких параметров

<cpu mode='host-passthrough' check='none' migratable='on'>
   <topology sockets='1' dies='1' cores='1' threads='2'/>
</cpu>

от таких

<cpu mode='host-passthrough' check='none' migratable='on'>
   <topology sockets='1' dies='1' cores='2' threads='1'/>
</cpu>
★★

«Все как у людей», в первом случае одно физическое ядро, один сокет, два потока. Во втором два физических ядра в каждом по одному потоку. В общем случае при достаточности ресурсов быстрее второе, с двумя физическими ядрами, в реальности зависит от этих самых ресурсов.

One ★★★★★
()

Будет ли заметна разница в производительности

Это сильно непростой вопрос в контексте виртуализации без уточнения очень подробных деталей задачи.

Если твой хост виртуализации загружен ровно одной виртуалкой, в которой крутится какой-то условный однопоточный монолит (например 1С сервер на малое количество юзеров), то ты не увидишь разницы в производительности даже между:

<topology sockets='1' cores='2'/> и <topology sockets='1' cores='40'/>. С высокой вероятностью в нашей абстрактной задаче второй вариант будет даже медленнее (за счет оверхед нагрузки в работе планировщика потоков на хосте).

Отдельная боль начинается, когда хост многопроцессорный и там еще и 1-2-4 numa-ноды на сокет.

BOOBLIK ★★★★
()
Последнее исправление: BOOBLIK (всего исправлений: 1)
Ответ на: комментарий от BOOBLIK

Это сильно непростой вопрос без уточнения очень подробных деталей задачи.

Конкретно эта виртуализация - домашняя лаборатория, на которой, как для саморазвития есть дев, тест и конечно же прод.
Камушек там Intel(R) Core(TM) i3-10100F.

virsh list --all

 Id   Name           State
------------------------------
 1    win10          running
 5    websrv         running
 6    reverseProxy   running
 8    prometheus     running

В своём примере я разницы не вижу между ядрами и потоками, но вдруг моя железка на антресольке вырастет до какого-нибудь мини-ЦОД’а, где потребуется уже понимание как правильно распределить ресурсы…

Shprot ★★
() автор топика