Juil
18
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