Quand je cours haut, je montrais le CPU 0-7. Quand je fais:
cat /proc/cpuinfo | grep "cpu cores" | uniq
Je reçois:
cpu cores : 4
Si je suis grep "ID physique", j'ai 1.
Je pense que ma commande est fausse et la top a raison. Ce n'est pas un VM et c'est un serveur physique, redhat. Qu'est-ce que je fais mal?
Je ne suis pas sûr que ceux-ci y répondent:
Comment connaître le nombre de noyaux d'un système sous Linux?
Nombre de processeurs dans/proc/cpuinfo
Edit: suis-je corrigé cet identifiant physique, s'il ne montre que 1, alors j'ai une puce physique dans la carte mère?
EDIT: C'est un processeur Intel (R) Xeon (R) CPU X5560 @ 2.80GHz, mais l'ID physique est 1, et je pensais que ce serait 0, mais il n'y a pas d'identifiant physique 0 en CPuinfo.
EDIT: Si cela importe, j'essaie de trouver des licences où ils le font .5 Le compte de base.
Quel CPU utilisez-vous? Combien de fil présents par noyau physique?
cat /proc/cpuinfo
Affiche le nombre de noyau physiques alors que top
montre le nombre total de threads présents.
Je pense que votre CPU a 4 noyau physique et 2 noyau logique par noyau physique. Donc, c'est top
montrant 8.
De plus, des contenus de /proc/cpuinfo
est quelque peu dépendant de la mise en œuvre. Comme en enraciné Android Shell, le fichier cpuinfo
ne contient aucun terme cpu cores
.
Cependant, dans cpuinfo
Chaque thread est nommé processor : X
, Où X
est le thread no. Donc, le dernier fil non est identique à celui de top/htop
sortir.
Résultat de nproc --all
doit également être cohérent avec top/htop
Le X5560 est un simple puce. Cela ressemble à ceci:
grep "physical id"
vous indique que vous avez un processeur physique installé.
Si vous prenez l'épandeur de chaleur du haut, vous pouvez voir ceci - un seul fichier physique Die (face cachée):
Si vous pouviez enlever cela mourir et le retournez, cela ressemblerait à ceci:
Sur cette matrice physique unique, il y a quatre CPU physiques CPU Construit sur le silicium:
grep "cpu cores"
vous dit que votre processeur comporte quatre cœurs physiques construits.
Chaque noyau est un seul processeur avec une unité à point flottante, un certain nombre d'unités d'exécution entier, une paire de piles de registre et une autre sorcière qui permet à chaque noyau d'exécuter efficacement deux flux d'instructions indépendants (fils) à la fois.
top
vous indique que tous les processeurs et les noyaux de votre ordinateur, collectivement, peuvent exécuter huit flux de travail indépendants à la fois - il vous indique que le système d'exploitation est capable de planifier huit threads simultanés pour l'exécution à un moment donné. .
top
montre une "CPU" par processeur logique; Sur X86, c'est le produit du nombre de sockets dans le système, par le nombre de cœurs physiques par prise, par le nombre de filets par noyau.
Les cpu cores
Entrée dans /proc/cpuinfo
, encore une fois sur x86, montre le nombre de cœurs physiques. Pour trouver le nombre de cœurs logiques, comme utilisé dans top
, vous devez regarder la valeur siblings
à la place:
cat /proc/cpuinfo | grep "siblings" | uniq
Ceci est décrit en détail dans la documentation du noyau .
lscpu
fournit des informations sur les CPU (s) installés (s) qui est plus facile à comprendre que /proc/cpuinfo
(ou plutôt, il présente les mêmes informations de manière plus simple).
Probablement, vous avez un processeur qui est un processeur "quadriocuteur" et que l'hyperthreading est activé afin que chaque noyau physique se présente au système d'exploitation (au noyau) comme deux logique Les cœurs, capables d'avoir deux threads attribués à ce même noyau physique simultanément.
Les termes essentiels pour vous assurer de bien comprendre sont les suivants: CPU ou puce physique, ou "Die" (relie la "prise"); Ensuite, noyau physique; Assurez-vous ensuite que vous avez une compréhension sur "processus" et "thread"; puis effacez "hyperthreading" et "noyau logique".
J'ai assisté à une conversation à Lisa 2017 qui a effacé tout cela très bien; Les diapositives de cette conversation sont disponibles en ligne , bien que bien sûr, ils ne vous aideront pas autant comme le discours actuel a fait ( puisque la partie parlée est manquante).
cPUInfo montrent les noyaux réels tandis que HTOP/TOP affiche à la fois des noyaux et du fil en tant que cores.Vous avez probablement 4 noyaux et 4 threads qui est pourquoi.