Есть много вопросов о количестве ядер, например. , но ни один из них не дает правильных логических ядер AFAIK.
Лучшее, что я могу придумать, - это вычислить себя по следующим формулам:
Physical cores = <Cores per socket> * <sockets>
Logical cores = <Threads per core> * Physical cores
с которыми я могу справиться:
threads=$(lscpu | awk '/^Thread/{print $NF}')
cores=$(lscpu | awk '/^Core\(/{print $NF}')
sockets=$(lscpu | awk '/^Socket/{print $NF}')
phy=$(( $sockets * $cores ))
logi=$(( $phy * $threads ))
Есть ли лучший способ?
РЕДАКТИРОВАТЬ:
Разве вы не можете просто использовать
cat /proc/cpuinfo | grep processor
0 на основе, чтобы на этой машине 56 логических ядер.
processor : 55
vendor_id : GenuineIntel
cpu family : 6
model : 79
model name : Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz
Есть пакет inxi.
sudo apt install inxi
Затем попробуйте
inxi --cpu
Физические ядра:
egrep '^core id' /proc/cpuinfo | sort -u | wc -l
Логические ядра:
egrep '^processor' /proc/cpuinfo | sort -u | wc -l
Физический процессор (отдельные чипы):
egrep '^physical id' /proc/cpuinfo | sort -u | wc -l