Informations sur le CPU en une commande

Ce script réalisé par Giri Mandalika permet d’obtenir plusieurs informations comme :

  • le nombre total de processeurs physiques
  • le nombre total de processeurs virtuels
  • le nombre de cœurs par processeurs physiques
  • le nombre de threads par cœurs

Ce n’est donc pas une commande qui a besoin d’être lancé tout les jours mais j’ai trouvé ce script intéressant car il utilise comme commande de base la commande kstat parfois méconnu situé dans /usr/bin

#!/bin/bash

nproc=`(/usr/bin/kstat -m cpu_info | grep chip_id | sort -u | wc -l | tr -d ' ')`
vproc=`(/usr/bin/kstat -m cpu_info | grep 'module: cpu_info' | sort -u | wc -l | tr -d ' ')`
#ncore=`(/usr/bin/kstat -m cpu_info | grep core_id | sort -u | wc -l | tr -d ' ')`
ncore=`(/usr/bin/kstat -m cpu_info | grep core_id | awk '{ print $2 }'| sort -u | wc -l | tr -d ' ')` #thanks to James Ervin#

nstrandspercore=$(($vproc/$ncore))
ncoresperproc=$(($ncore/$nproc))

echo "Total number of physical processors: $nproc"
echo "Number of virtual processors: $vproc"
echo "Total number of cores: $ncore"
echo "Number of cores per physical processor: $ncoresperproc"
echo "Number of hardware threads (strands or vCPUs) per core: $nstrandspercore"

# now derive the vcpu-to-core mapping based on above information #

echo -e "\n** Socket-Core-vCPU mapping **"
vpid=0

for ((i = 1; i <= ${nproc}; ++i ))
do
        echo -e "\nPhysical Processor $i:"

        for ((j = 1; j <= ${ncoresperproc}; ++j ))
        do
                echo -e "\tCore $j:"
                echo -e "\t\tvCPU ids: $vpid-$(($vpid+$nstrandspercore-1))"
                vpid=$(($vpid+$nstrandspercore))
        done
done

 

./show_cpu
Total number of physical processors: 1
Number of virtual processors: 32
Total number of cores: 8
Number of cores per physical processor: 8
Number of hardware threads (strands or vCPUs) per core: 4

** Socket-Core-vCPU mapping **

Physical Processor 1:
 Core 1:
 vCPU ids: 0-3
 Core 2:
 vCPU ids: 4-7
 Core 3:
 vCPU ids: 8-11
 Core 4:
 vCPU ids: 12-15
 Core 5:
 vCPU ids: 16-19
 Core 6:
 vCPU ids: 20-23
 Core 7:
 vCPU ids: 24-27
 Core 8:
 vCPU ids: 28-31

Articles en relation:

Tags: , , ,

2 réponses de "Informations sur le CPU en une commande"

  • milodanlso says:
  • axel says:
Laisser un commentaire à axel

*