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