Popular Posts

Mar 15, 2017

Script - Find cpu - model / type / count / core / thread / speed - Solaris Sparc

           
           -  Purpose of this script - Find the CPU count, Model, Type, Physical Count, Core, Thread, Speed and vCPU mapping with Physical CPU
          -  Use the script in Solaris Sparc servers
          -  The output as below
                    CPU Model is : UltraSPARC-T2
                    CPU Type is : sparcv9
                    Total number of physical processors: 1
                    Number of virtual processors: 64
                    Total number of cores: 8
                    Number of cores per physical processor: 8
                    Number of hardware threads (strands or vCPUs) per core: 8
                    Processor speed: 1165 MHz (1.16 GHz)

#!/bin/bash

/usr/bin/kstat -m cpu_info | egrep "chip_id|core_id|module: cpu_info|brand|cpu_type" > /var/tmp/cpu_info.log

nproc=`(grep chip_id /var/tmp/cpu_info.log | awk '{ print $2 }' | sort -u | wc -l | tr -d ' ')`
ncore=`(grep core_id /var/tmp/cpu_info.log | awk '{ print $2 }' | sort -u | wc -l | tr -d ' ')`
vproc=`(grep 'module: cpu_info' /var/tmp/cpu_info.log | awk '{ print $4 }' | sort -u | wc -l | tr -d ' ')`
cpumodel=`grep brand /var/tmp/cpu_info.log | uniq | awk '{print $2}'`
cputype=`grep "cpu_type" /var/tmp/cpu_info.log | uniq | awk '{print $2}'`

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

speedinmhz=`(/usr/bin/kstat -m cpu_info | grep clock_MHz | awk '{ print $2 }' | sort -u)`
speedinghz=`echo "scale=2; $speedinmhz/1000" | bc`

echo "" ; echo "" 
echo "CPU Model is : $cpumodel"
echo "CPU Type is : $cputype"
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"
echo "Processor speed: $speedinmhz MHz ($speedinghz GHz)"
echo "" ; echo "" 
# now derive the vcpu-to-core mapping based on above information #

echo -e "\n** Socket-Core-vCPU mapping **"
let linenum=2

for ((i = 1; i <= ${nproc}; ++i ))
do
        chipid=`sed -n ${linenum}p /var/tmp/cpu_info.log | awk '{ print $2 }'`
        echo -e "\nPhysical Processor $i (chip id: $chipid):"

        for ((j = 1; j <= ${ncoresperproc}; ++j ))
        do
                let linenum=($linenum + 1)
                coreid=`sed -n ${linenum}p /var/tmp/cpu_info.log | awk '{ print $2 }'`
                echo -e "\tCore $j (core id: $coreid):"

                let linenum=($linenum - 2)
                vcpustart=`sed -n ${linenum}p /var/tmp/cpu_info.log | awk '{ print $4 }'`

                let linenum=(3 * $nstrandspercore + $linenum - 3)
                vcpuend=`sed -n ${linenum}p /var/tmp/cpu_info.log | awk '{ print $4 }'`

                echo -e "\t\tvCPU ids: $vcpustart - $vcpuend"
                let linenum=($linenum + 4)
        done
done

rm /var/tmp/cpu_info.log







~Judi~
script to find cpu information
script to find cpu count
script to find cpu core
script to find cpu thread
script to find cpu model and type
find cpu details in sparc server
find cpu details in Solaris server
processor details in solaris server
processor information in sparc server
solaris cpu count

No comments:

Post a Comment

Popular Posts