CPU, core 정보를 구할 때는 아래 명령어를 이용하자.
/usr/bin/kstat -m cpu_info
/usr/sbin/psrinfo --> CPU 정보 (solaris)
/usr/sbin/prtdiag --> HW 정보 (solaris)
그외 시스템 정보 및 상태 확인할 때는 psrinfo, prtconf, dmesg, format, netstat, uname 등을 이용 가능하다.
아래는 CPU 개수를 편하게 확인할 수 있는 script이다.
http://technopark02.blogspot.kr/2011/04/solaris-show-me-cpu-vcpu-core-counts.html
#!/bin/bash
# original
/usr/bin/kstat -m cpu_info | egrep "chip_id|core_id|module: cpu_info" > /var/tmp/cpu_info.log
# solaris 10에서는 pkg_core_id, core_id 둘다 존재하는데, pkg_core_id만 grep 하면 된다
/usr/bin/kstat -m cpu_info | egrep "chip_id|pkg_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
rm /var/tmp/cpu_info.log
실행 결과 예시)
$ bash showcpucount.sh
Total number of physical processors: 1
Number of virtual processors: 8
Total number of cores: 4
Number of cores per physical processor: 4
Number of hardware threads (strands or vCPUs) per core: 2
Processor speed: 2400 MHz (2.40 GHz)
** Socket-Core-vCPU mapping **
Physical Processor 1 (chip id: 0):
Core 1 (core id: 0):
vCPU ids: 0 - 1
Core 2 (core id: 9):
vCPU ids: 2 - 3
Core 3 (core id: 0):
vCPU ids: 4 - 5
Core 4 (core id: 9):
vCPU ids: 6 - 7
'Cloud Computing > unix, sh, network' 카테고리의 다른 글
nginx 설정 (location, prefix match, regular expression match) (0) | 2016.06.28 |
---|---|
[curl, wget] 다운로드 속도 조절, 부분 받기 (0) | 2013.03.29 |
WRITTEN BY
- manager@
Data Analysis, Text/Knowledge Mining, Python, Cloud Computing, Platform