Get the Processor Type on Solaris Отримати тип процесора на Solaris
It's easy to get the type of processor that a Solaris box is running on. Легко отримати тип процесора, вікна Solaris працює. While this might seem like a silly thing to need to know, if you are connected into a Solaris server at a remote location, you may need to know what type of processor is being used in order to install the correct packages. Хоча це може здатися дурною потрібно знати, якщо ви підключені до серверу Solaris у віддаленому місці, вам необхідно знати, який тип процесора використовується для того, щоб встановити правильні пакети.
uname -p UName-P
The uname command gives information about the current system. UName команда видає інформацію про поточну системі.
Example on an Intel box: Наприклад, на полі Intel:
# uname -p # UName-P
i.386 i.386
Example on an Sun Sparc box: Наприклад, на вікна Sun Sparc:
# uname -p # UName-P
sparc SPARC

Daily Email Updates Email Щоденні оновлення
You can get our how-to articles in your inbox each day for free. Ви можете отримати наші довідкові статті у Вашу поштову скриньку щодня безкоштовно. Just enter your name and email below: Просто введіть ваші ім'я та адресу електронної пошти нижче:



As part of script I've made to automatically get HW details of our servers (HP9000, Solaris, Fujitsu, AIX,…) this function give you information about processor number, type and speed: У рамках сценарію я зробив, щоб автоматично отримувати HW подробиці з наших серверів (HP9000, Solaris, Fujitsu, AIX, ...) Ця функція дати вам інформацію про процесор кількості, тип і швидкості:
function sunos_hw_CPU { Функція sunos_hw_CPU (
typeset num=$( psrinfo | wc -l ) набрана пит = $ (psrinfo | WC-L)
typeset tipo=$( набрана Tipo = $ (
prtconf -pvPD | egrep -e “device_type.*cpu|name” | prtconf-pvPD | egrep-Е "device_type .* CPU | Назва" |
sed -n “/device_type/{n;p;}” | awk -F\' '{ print $2 }' | СЕД-N "/ device_type / (N, P;)" | AWK-F \ '(PRINT $ 2)' |
sed -e “s/SUNW,//” | head -1 СЕД-E "S / SUNW, / /" | Головне -1
) )
if [ "$tipo" == "cpu" ] якщо [ "$ Tipo" == "Процесор"]
then тоді
tipo=$( Тип = $ (
prtconf -pvPD | egrep -e “device_type.*cpu|compatible” | prtconf-pvPD | egrep-Е "device_type .* CPU | сумісна" |
sed -n “/device_type/{n;p;}” | awk -F\' '{ print $2 }' | СЕД-N "/ device_type / (N, P;)" | AWK-F \ '(PRINT $ 2)' |
sed -e “s/SUNW,//” | head -1 СЕД-E "S / SUNW, / /" | Головне -1
) )
fi Fi
typeset freq=$( набрана FREQ = $ (
/usr/sbin/psrinfo -v| grep operate | sed -e “s/.*at //;s/,//” | / USR / sbin / psrinfo-V | Grep працювати | СЕД-E "з / на .* / /; S /,//" |
head -1 голова -1
) )
echo $num \”$tipo $freq\” Ехо $ піт \ "$ $ Tipo Freq \"
} )
# sunos_hw_CPU # Sunos_hw_CPU
16 “UltraSPARC-IV 1350 MHz” 16 "UltraSPARC-IV 1350 МГц"
Enjoy it Насолоджуйтеся цим
! !
Alex, thanks! Олексій, спасибі!
That's a great script… I might convert it into linux… Це велике сценарію ... Я міг би перетворити її на Linux ...
As part of the same script, I've done this function for Linux (including VMware ESX servers): У рамках того ж сценарію, я зробив цю функцію для Linux (у тому числі VMware ESX серверів):
function linux_hw_CPU { Функція linux_hw_CPU (
typeset num=0 набрана Num = 0
typeset name=”" набрати ім'я = ""
typeset cores=”" набрана ядер = ""
name=”$( Name = "$ (
cat /proc/cpuinfo | awk -F: ' Cat / Proc / CPUInfo | AWK-F: '
/vendor_id/ { vendor=$2 } / Vendor_id / (Vendor = $ 2)
/model name/ { model=$2 } / / Назва моделі = ($ 2)
/cpu MHz/ { / МГц процесор / (
if( model ~ “Hz” ) {speed=”"} else { speed=$2″ MHz” }; якщо (модель ~ "Hz") (швидкість = "") (прискоренням = $ 2 "MHz");
print vendor, model, speed; } друк продавця, модель, швидкість;)
' | tail -1 '| Хвості -1
)” ) "
num=$( Num = $ (
if [ -r /proc/vmware/cpuinfo ] якщо [-R / Proc / VMware / CPUInfo]
then тоді
awk '/pcpu/ { print NF-1 }' /proc/vmware/cpuinfo AWK '/ PCPU / (друку NF-1)' / Proc / VMware / CPUInfo
else ще
cat /proc/cpuinfo | grep processor| wc -l Cat / Proc / CPUInfo | Grep процесор | WC-L
fi Fi
) )
# ESX: mas info sobre logical/cores/packages # ESX: MAS інформація про логічне / ядра / пакетів
if [ -r /proc/vmware/sched/ncpus ] якщо [-R / Proc / VMware / розкладом / ncpus]
then тоді
cores=$( echo $( cat /proc/vmware/sched/ncpus ) ) ядер = $ (ECHO $ (CAT / Proc / VMware / розкладом / ncpus))
fi Fi
echo $num $( echo “$name ($cores)” | enclose ) Ехо піт $ $ ( "Ехо" $ ім'я ($ ядер) "| докласти)
} )
For example, in one of our ESX box, I get: Наприклад, в одному з наших полі ESX, я отримую:
32 “GenuineIntel Intel(R) Xeon(TM) CPU 3.00GHz (32 logical 16 cores 8 packages)” 32 "GenuineIntel Intel (R) Core (TM) CPU 3.00GHz (32 логічні 16 ядер 8 пакетів)"
(ESX is nice, it gives me information about chip, cores and also logical (that is because hyperthreading is activates on that box). (ESX це добре, це дає мені інформацію про чіп, сердечники, а також логічні (це тому, що це активізує HyperThreading на цьому полі).
A normal linux server (not ESX) would give something more simple like: Нормальний сервер Linux (не ESX) дасть щось більш просте, наприклад:
2 “GenuineIntel Pentium III (Coppermine) 696.417 MHz ()” 2 "GenuineIntel Pentium III (Coppermine) 696,417 МГц ()"
Hope it helps Сподіваємося, що вона допомагає
Alex : ¿ Its posible to get the complete set of scripts to identify the hw?..thanks in advance Alex: ¿Його Можливе щоб отримати повний набір скриптів для виявлення HW? .. Спасибо заранее
What if you have a 64 bit dual core CPU and you are running a non SMP kernel , the script will show only 1 CPU. Що робити, якщо у вас є 64-бітний двоядерний процесор і ви користуєтесь ядром без SMP, скрипт буде показувати лише 1 процесор.
Is there a way to get the details from hardware ? Чи є спосіб отримати деталі із заліза?
On linux , dmidecode -s processor-version will give you the CPU count , however how to find out if its a single or multicore processor У Linux dmidecode-S-версії процесора дасть вам кол-процесор, але як дізнатися, якщо його одного або багатоядерного процесора
@Keith: I believe that if you use a non-SMP kernel, your OS won't be able to see more than 1 CPU, so you won't be able to get more information about CPU, unless maybe you use vendor specific drivers. @ Кейт: Я вважаю, що якщо ви використовуєте не-SMP ядро, ваша операційна система не зможе побачити більше, ніж 1 CPU, так що ви не зможете отримати більше інформації про процесор, може бути, якщо ви використовуєте спеціальні драйвери постачальника .
If you use a SMP kernel, you may be able to get information about the number of chips and the number of cores of each cpu chip using /proc/cpuinfo. Якщо ви користуєтесь ядром SMP, Ви зможете отримати інформацію про кількість фішок і кількість ядер у кожному процесорі чіпа, використовуючи / Proc / CPUInfo. Look at how I actually decode it in my script: Подивіться, як я насправді його декодувати в моєму сценарії:
function enclose { Функція докласти (
tr -s ” ” | sed -e “s/^/\”/; s/$/\”/; s/\”\ /\”/; s/\ \”/\”/” TR-S "" | СЕД-E "S / ^ / \" /, S / $ / \ "/, S / \" \ / \ "/, S / \ \" / \ "/"
} )
function linux_hw_CPU { Функція linux_hw_CPU (
typeset num=0 набрана Num = 0
typeset name=”" набрати ім'я = ""
typeset cores=”" набрана ядер = ""
name=”$( Name = "$ (
cat /proc/cpuinfo | awk -F: ' Cat / Proc / CPUInfo | AWK-F: '
/vendor_id/ { vendor=$2 } / Vendor_id / (Vendor = $ 2)
/model name/ { model=$2 } / / Назва моделі = ($ 2)
/cpu MHz/ { / МГц процесор / (
if( model ~ “Hz” ) {speed=”"} else { speed=$2″ MHz” }; якщо (модель ~ "Hz") (швидкість = "") (прискоренням = $ 2 "MHz");
print vendor, model, speed; } друк продавця, модель, швидкість;)
' | tail -1 '| Хвості -1
)” ) "
num=$( Num = $ (
if [ -r /proc/vmware/cpuinfo ] якщо [-R / Proc / VMware / CPUInfo]
then тоді
awk '/pcpu/ { print NF-1 }' /proc/vmware/cpuinfo AWK '/ PCPU / (друку NF-1)' / Proc / VMware / CPUInfo
else ще
cat /proc/cpuinfo | grep processor| wc -l Cat / Proc / CPUInfo | Grep процесор | WC-L
fi Fi
) )
if grep -q “physical id” /proc/cpuinfo || grep “siblings” /proc/cpuinfo якщо Grep-Q "фізична ID" / Proc / CPUInfo | | Grep "брати" / Proc / CPUInfo
then тоді
chip_count=$( grep “physical id” /proc/cpuinfo | sort -u | wc -l ) chip_count = $ (Grep "фізичний ID" / Proc / CPUInfo | Сортувати-U | WC-L)
chip_core=$( grep “siblings” /proc/cpuinfo | tail -1 | cut -d: -f2 ) chip_core = $ (Grep "брати" / Proc / CPUInfo | хвості -1 | Cut-D:-F2)
cores=”($chip_count chips x $chip_core cores)” ядер = "($ chip_count чіпів X $ chip_core ядер)"
fi Fi
# Blades HP con # Леза HP Con
if [ -x /sbin/hpasmcli ] якщо [-X / sbin / hpasmcli]
then тоді
chip_name=$( /sbin/hpasmcli -s “SHOW SERVER” | grep “Name” | head -1 | cut -d: -f2 ) chip_name = $ (/ sbin / hpasmcli-S "ШОУ SERVER" | Grep "Ім'я" | Головне -1 | Cut-D:-F2)
chip_speed=$( /sbin/hpasmcli -s “SHOW SERVER” | grep “Speed” | head -1 | cut -d: -f2 ) chip_speed = $ (/ sbin / hpasmcli-S "ШОУ SERVER" | Grep "Швидкість" | Головне -1 | Cut-D:-F2)
chip_core=$( /sbin/hpasmcli -s “SHOW SERVER” | grep “Core” | head -1 | cut -d: -f2 ) chip_core = $ (/ sbin / hpasmcli-S "ШОУ SERVER" | Grep "Core" | голову -1 | Cut-D:-F2)
fi Fi
# ESX: mas info sobre logical/cores/packages # ESX: MAS інформація про логічне / ядра / пакетів
if [ -r /proc/vmware/sched/ncpus ] якщо [-R / Proc / VMware / розкладом / ncpus]
then тоді
cores=”($( echo $( cat /proc/vmware/sched/ncpus ) ))” ядер ="($( Ехо $ (CAT / Proc / VMware / розкладом / ncpus))) "
fi Fi
# Linux Itanium IA64 # Linux IA64 Itanium
if grep -q -i itanium /proc/cpuinfo якщо Grep-Q-я Itanium / Proc / CPUInfo
then тоді
name=”$( Name = "$ (
grep “vendor” /proc/cpuinfo | cut -d: -f2- | tail -1 ) $( Grep "постачальник" / Proc / CPUInfo | Cut-D:-F2-| хвості -1) $ (
grep “arch ” /proc/cpuinfo | cut -d: -f2- | tail -1 ) $( Grep "Арка" / Proc / CPUInfo | Cut-D:-F2-| хвості -1) $ (
grep “family” /proc/cpuinfo | cut -d: -f2- | tail -1 ) $( Grep "родина" / Proc / CPUInfo | Cut-D:-F2-| хвості -1) $ (
grep “cpu MHz” /proc/cpuinfo | cut -d: -f2- | cut -d. Grep "CPU МГц" / Proc / CPUInfo | Cut-D:-F2-| Cut-D. -f1 | tail -1 ) Mhz” -f1 | хвості -1) МГц "
chip_count=$( grep “physical id” /proc/cpuinfo | sort -u | wc -l ) chip_count = $ (Grep "фізичний ID" / Proc / CPUInfo | Сортувати-U | WC-L)
chip_core=$( grep “siblings” /proc/cpuinfo | tail -1 | cut -d: -f2 ) chip_core = $ (Grep "брати" / Proc / CPUInfo | хвості -1 | Cut-D:-F2)
cores=”($chip_count chips x $chip_core cores)” ядер = "($ chip_count чіпів X $ chip_core ядер)"
fi Fi
echo $num $( echo “$name $cores” | enclose ) Ехо піт $ $ ( "Ехо" $ Name $ ядрами "| докласти)
} )
linux_hw_CPU linux_hw_CPU
For example: Наприклад:
# linux_hw_CPU # Linux_hw_CPU
8 “GenuineIntel Intel(R) Xeon(R) CPU E5345 @ 2.33GHz (2 chips x 4 cores)” 8 "GenuineIntel Intel (R) Xeon (R) CPU E5345@2.33GHz (2 х 4 фішки ядер)"
Hello guys, Привіт хлопці,
Thanks alot for your great work! Велике спасибі за вашу велику роботу! Anyone managed to differentiate the number of socket/core/threads on Sun CMT processors? Будь-яке вдалося диференціювати числа Socket / Core / потоків по процесорах нд CMT?
Hi, Привіт,
Physical disks on sun solaris : psrinfo -p Фізичні диски на Sun Solaris: psrinfo-P
@Alex, @ Алекс,
Great script. Великий сценарій. But if you have CPUs with different frequencies, then it will NOT work. Але якщо у вас є процесорів з різними частотами, то він не буде працювати. For getting the Frequency, you've used the below command: Для отримання частоти, ви використали наступну команду:
/usr/sbin/psrinfo -v| grep operate | sed -e “s/.*at //;s/,//” | head -1 / USR / sbin / psrinfo-V | Grep працювати | СЕД-E "з / на .* / /; S /,//" | Головне -1
This will result in: Це призведе до:
$ /usr/sbin/psrinfo -v| grep operate | sed -e “s/.*at //;s/,//” | head -1 $ / USR / sbin / psrinfo-V | Grep працювати | СЕД-E "з / на .* / /; S /,//" | Головне -1
1200 MHz 1200 МГц
However, when I check, I've got 8 CPUs – 4 with 1200 MHz and 4 others with 900 MHz Однак, коли я перевіряю, я отримав 8 процесорів - 4 з 1200 МГц і 4 інші з 900 МГц
$ /usr/sbin/psrinfo -v| grep operate | sed -e “s/.*at //;s/,//” $ / USR / sbin / psrinfo-V | Grep працювати | СЕД-E "з / на .* / /; S /,//"
1200 MHz 1200 МГц
1200 MHz 1200 МГц
1200 MHz 1200 МГц
1200 MHz 1200 МГц
900 MHz 900 МГц
900 MHz 900 МГц
900 MHz 900 МГц
900 MHz 900 МГц
You can perhaps use something like: Ви можете, можливо, використовувати щось на кшталт:
/usr/sbin/psrinfo -v| grep operate | sed -e “s/.*at //;s/,//” | uniq / USR / sbin / psrinfo-V | Grep працювати | СЕД-E "з / на .* / /; S /,//" | Uniq
or або
/usr/sbin/psrinfo -v| grep operate | sed -e “s/.*at //;s/,//” | sort -u / USR / sbin / psrinfo-V | Grep працювати | СЕД-E "з / на .* / /; S /,//" | Сортувати-U
using the above commands for frequency, I get the below output: Використовуючи вище команд частоти, я отримую виході нижче:
$ ./sunos_cpu_info $. / Sunos_cpu_info
8 “UltraSPARC-III+ 1200 MHz 900 MHz” 8 "UltraSPARC-III + 1200 МГц 900 МГц"
Anyway, thanks a lot for your wonderful script (for both Linux & Solaris!) У всякому разі, спасибі за ваш чудовий скрипт (для Linux і Solaris &!)
@ Alex, I'm referring to your first post! @ Алекс, я маю на увазі ваш перший пост!
Really usefull scripts for Linux and Solaris. Дійсно корисних скриптів для Linux і Solaris.
I have been trying to determine the number of cores in a system with Sparc T2 cpus. Я намагався визначити число ядер в системах з процесорами Sparc T2.
These cpus hav 4,6 or 8 cores per cpu Ці процесори Море 4,6 або 8 ядер на процесор
psrinfo -pv | wc -l will return 32, this is the number of threads, if I divide 32 by 2 I get 16 ! psrinfo-PV | WC-L поверне 32, це число потоків, якщо розділити 32 на 2 отримаємо 16!
Does this mean I have 4 4 core cpus or do I have 2 8 core cpus? Чи означає це, у мене є 4 4 процесорами основного або у мене є 2 8 процесорів?
Am I missing something? Я щось відсутній?
/Hogmaster / Hogmaster