Как получить количество физических / логических ядер?

Есть много вопросов о количестве ядер, например. , но ни один из них не дает правильных логических ядер 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 ))

Есть ли лучший способ?

РЕДАКТИРОВАТЬ:

  • На основе общих утилит, т.е. без установки новых пакетов.
  • Мне нужны как логические, так и физические. Большинство ответов, которые я видел, дают только один из двух
0
задан 16 November 2020 в 11:26

3 ответа

Разве вы не можете просто использовать

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
1
ответ дан 3 January 2021 в 22:49

Есть пакет inxi.

sudo apt install inxi

Затем попробуйте

inxi --cpu
1
ответ дан 3 January 2021 в 22:49

Физические ядра:

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
2
ответ дан 3 January 2021 в 22:49

Другие вопросы по тегам:

Похожие вопросы: