A bueno,
Me pasó lo siguiente... viene el administrador de vmware, y me pregunta... cuantos procesadores tiene el server-alfa?
A lo que le respondo, muy fácil, hacés <psrinfo -pv> y lo vés:
root@server-alfa # psrinfo -pv
The physical processor has 64 virtual processors (0-63)
UltraSPARC-T2+ (cpuid 0 clock 1164 MHz)
The physical processor has 64 virtual processors (64-127)
UltraSPARC-T2+ (cpuid 64 clock 1164 MHz)
root@server-alfa #
Al otro día... viene y me dice, nono quería saber los cores, vos me pasaste los sockets.
Ah...., bueno, hay un comando el <kstat>, lo podemos ver con eso, respondo...
Cuando razono un poco, me doy cuenta que el <kstat> da una salida engorrosa, con lo cual, recurro a un script que encontré por la web y que puede ser ejecutado por cualquier usuario:
#\/------------------------------\colocar lo de abajo/---------------------------------\/
#!/bin/bash
/usr/bin/kstat -m cpu_info | egrep "chip_id|core_id|module: cpu_info" > /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 ' ')`
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 "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)"
# 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
#/\-----------------------------/colocar lo de arriba\---------------------------------/\
El script les va a dar una salida como la de abajo, donde vemos el total de procesadores, físicos, el total de procesadores virtuales (hilos) y el total de nucleos con info adicional por cada socket y cuantos hilos tiene cada core.
root@server-alfa # ./showcpucount.sh
Total number of physical processors: 2
Number of virtual processors: 128
Total number of cores: 16
Number of cores per physical processor: 8
Number of hardware threads (strands or vCPUs) per core: 8
Processor speed: 1164 MHz (1.16 GHz)
** Socket-Core-vCPU mapping **
Physical Processor 1 (chip id: 0):
Core 1 (core id: 258):
vCPU ids: 0 - 7
Core 2 (core id: 265):
vCPU ids: 8 - 15
Core 3 (core id: 272):
vCPU ids: 16 - 23
Core 4 (core id: 279):
vCPU ids: 24 - 31
Core 5 (core id: 286):
vCPU ids: 32 - 39
Core 6 (core id: 293):
vCPU ids: 40 - 47
Core 7 (core id: 300):
vCPU ids: 48 - 55
Core 8 (core id: 307):
vCPU ids: 56 - 63
Physical Processor 2 (chip id: 1):
Core 1 (core id: 314):
vCPU ids: 64 - 71
Core 2 (core id: 321):
vCPU ids: 72 - 79
Core 3 (core id: 328):
vCPU ids: 80 - 87
Core 4 (core id: 335):
vCPU ids: 88 - 95
Core 5 (core id: 342):
vCPU ids: 96 - 103
Core 6 (core id: 349):
vCPU ids: 104 - 111
Core 7 (core id: 356):
vCPU ids: 112 - 119
Core 8 (core id: 363):
vCPU ids: 120 - 127
root@server-alfa #
Me pasó lo siguiente... viene el administrador de vmware, y me pregunta... cuantos procesadores tiene el server-alfa?
A lo que le respondo, muy fácil, hacés <psrinfo -pv> y lo vés:
root@server-alfa # psrinfo -pv
The physical processor has 64 virtual processors (0-63)
UltraSPARC-T2+ (cpuid 0 clock 1164 MHz)
The physical processor has 64 virtual processors (64-127)
UltraSPARC-T2+ (cpuid 64 clock 1164 MHz)
root@server-alfa #
Al otro día... viene y me dice, nono quería saber los cores, vos me pasaste los sockets.
Ah...., bueno, hay un comando el <kstat>, lo podemos ver con eso, respondo...
Cuando razono un poco, me doy cuenta que el <kstat> da una salida engorrosa, con lo cual, recurro a un script que encontré por la web y que puede ser ejecutado por cualquier usuario:
#\/------------------------------\colocar lo de abajo/---------------------------------\/
#!/bin/bash
/usr/bin/kstat -m cpu_info | egrep "chip_id|core_id|module: cpu_info" > /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 ' ')`
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 "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)"
# 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
#/\-----------------------------/colocar lo de arriba\---------------------------------/\
El script les va a dar una salida como la de abajo, donde vemos el total de procesadores, físicos, el total de procesadores virtuales (hilos) y el total de nucleos con info adicional por cada socket y cuantos hilos tiene cada core.
root@server-alfa # ./showcpucount.sh
Total number of physical processors: 2
Number of virtual processors: 128
Total number of cores: 16
Number of cores per physical processor: 8
Number of hardware threads (strands or vCPUs) per core: 8
Processor speed: 1164 MHz (1.16 GHz)
** Socket-Core-vCPU mapping **
Physical Processor 1 (chip id: 0):
Core 1 (core id: 258):
vCPU ids: 0 - 7
Core 2 (core id: 265):
vCPU ids: 8 - 15
Core 3 (core id: 272):
vCPU ids: 16 - 23
Core 4 (core id: 279):
vCPU ids: 24 - 31
Core 5 (core id: 286):
vCPU ids: 32 - 39
Core 6 (core id: 293):
vCPU ids: 40 - 47
Core 7 (core id: 300):
vCPU ids: 48 - 55
Core 8 (core id: 307):
vCPU ids: 56 - 63
Physical Processor 2 (chip id: 1):
Core 1 (core id: 314):
vCPU ids: 64 - 71
Core 2 (core id: 321):
vCPU ids: 72 - 79
Core 3 (core id: 328):
vCPU ids: 80 - 87
Core 4 (core id: 335):
vCPU ids: 88 - 95
Core 5 (core id: 342):
vCPU ids: 96 - 103
Core 6 (core id: 349):
vCPU ids: 104 - 111
Core 7 (core id: 356):
vCPU ids: 112 - 119
Core 8 (core id: 363):
vCPU ids: 120 - 127
root@server-alfa #
No hay comentarios:
Publicar un comentario