J’ai ce script, mais je ne sais pas comment obtenir le dernier élément dans l’imprimé :
Le dernier élément devrait être le nombre de processeurs, moins 1.
J’ai ce script, mais je ne sais pas comment obtenir le dernier élément dans l’imprimé :
Le dernier élément devrait être le nombre de processeurs, moins 1.
Le `` commande fournit encore une autre façon d’obtenir un nombre de CPU :
L’avantage de cela au cours de certaines des autres approches est que getconf a été autour depuis longtemps. Quelques-unes des anciennes machines linux je dois faire du développement sur n’est pas le ou
les commandes disponibles, mais ils ont `` . Tel que mentionné dans les commentaires il est aussi assez portable tel qu’il fonctionne aussi sous Mac OS x aussi bien.
Préface: Le problème avec l' /proc/cpuinfo
-en fonction des réponses , c'est qu'ils analyser l'information qui a été destinés à l'homme de la consommation et donc utilise pas stable en format conçu pour la machine d'analyse - le format de sortie peut varier au sein de plates-formes et les conditions d'exécution; l'aide d' lscpu -p
sur Linux (et sysctl
sur OSX) contourne le problème.
Voici une solution qui fonctionne sur Linux et OSX.bash
extraits de code pour déterminer le nombre d' - en-ligne - logique ou physique Processeurs sont fournis; voir les commentaires pour plus de détails.
Utilise lscpu
pour Linux, et sysctl
pour OSX.
La terminologie note: CPU qui désigne la plus petite unité de traitement, tel que vu par l'OS. Non-la technologie hyper-threading cœurs de chaque correspondent à 1 CPU, alors que l'hyper-threading carottes contiennent plus de 1 (typiquement: 2) - logique - CPU.
Linux utilise la taxonomie, en commençant par la plus petite unité: CPU < core < socket < livre < nœud, chaque niveau comprenant 1 ou plusieurs instances du niveau inférieur suivant.
Ma connaissance est peu fragile ici - ne laissez-moi savoir si je me trompe.
Personne ne sait ce qu'est un "livre" est dans ce contexte?
# OSX: Use `sysctl -n hw.*cpu_max`, which returns the values of
# interest directly.
# CAVEAT: Using the "_max" key suffixes means that the *maximum*
# available number of CPUs is reported, whereas the
# current power-management mode could make *fewer* CPUs
# available; dropping the "_max" suffix would report the
# number of *currently* available ones; see [1] below.
#
# Linux: Parse output from `lscpu -p`, where each output line represents
# a distinct (logical) CPU.
# Note: Newer versions of `lscpu` support more flexible output
# formats, but we stick with the parseable legacy format
# generated by `-p` to support older distros, too.
# `-p` reports *online* CPUs only - i.e., on hot-pluggable
# systems, currently disabled (offline) CPUs are NOT
# reported.
# Number of LOGICAL CPUs (includes those reported by hyper-threading cores)
# Linux: Simply count the number of (non-comment) output lines from `lscpu -p`,
# which tells us the number of *logical* CPUs.
logicalCpuCount=$([[ $(uname) = 'Darwin' ]] &&
sysctl -n hw.logicalcpu_max ||
lscpu -p | egrep -v '^#' | wc -l)
# Number of PHYSICAL CPUs (cores).
# Linux: The 2nd column contains the core ID, with each core ID having 1 or
# - in the case of hyperthreading - more logical CPUs.
# Counting the *unique* cores across lines tells us the
# number of *physical* CPUs (cores).
physicalCpuCount=$([[ $(uname) = 'Darwin' ]] &&
sysctl -n hw.physicalcpu_max ||
lscpu -p | egrep -v '^#' | sort -u -t, -k 2,4 | wc -l)
Notez que BSD systèmes dérivés autres que OSX - par exemple, FreeBSD seule l' hw.ncpu
- clé pour sysctl
, ce qui OSX a déconseillé; je suis dans le flou sur ce qui de la de nouvelles clés hw.npu
correspond à: hw.(logical|physical)cpu_[max]
.
Coup de chapeau à @teambob pour l'aidant à corriger la physique-CPU-nombre lscpu
commande.
Mise en garde: lscpu -p
sortie ne comprend PAS un "livre" dans la colonne ( man
page mentions "livres" comme une entité entre le connecteur et le nœud dans la hiérarchie taxonomique). Si les "livres" sont en jeu, sur un système Linux (quelqu'un sait quand et comment?), la physique-CPU-comte commande peut sous-rapport (ce qui est fondée sur l'hypothèse qu' lscpu
rapports des Identifiants qui sont des non-unique à travers de niveau supérieur entités; par exemple: 2 différents cœurs de 2 sockets différents pourraient avoir le même IDENTIFIANT).
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.