Sun Solaris - Find out number of processors and cores
Our SPARC server is running Sun Solaris 10; I would like to find out the actual number of processors and the number of cores for each processor.
The output of psrinfo and prtdiag is ambiguous:
$psrinfo -v
Status of virtual processor 0 as of: dd/mm/yyyy hh:mm:ss
on-line since dd/mm/yyyy hh:mm:ss.
The sparcv9 processor operates at 1592 MHz,
and has a sparcv9 floating point processor.
Status of virtual processor 1 as of: dd/mm/yyyy hh:mm:ss
on-line since dd/mm/yyyy hh:mm:ss.
The sparcv9 processor operates at 1592 MHz,
and has a sparcv9 floating point processor.
Status of virtual processor 2 as of: dd/mm/yyyy hh:mm:ss
on-line since dd/mm/yyyy hh:mm:ss.
The sparcv9 processor operates at 1592 MHz,
and has a sparcv9 floating point processor.
Status of virtual processor 3 as of: dd/mm/yyyy hh:mm:ss
on-line since dd/mm/yyyy hh:mm:ss.
The sparcv9 processor operates at 1592 MHz,
and has a sparcv9 floating point processor.
_
$prtdiag -v
System Configuration: Sun Microsystems sun4u Sun Fire V445
System clock frequency: 199 MHZ
Memory size: 32GB
==================================== CPUs ====================================
E$ CPU CPU
CPU Freq Size Implementation Mask Status Location
--- -------- ---------- --------------------- ----- ------ --------
0 1592 MHz 1MB SUNW,UltraSPARC-IIIi 3.4 on-line MB/C0/P0
1 1592 MHz 1MB SUNW,UltraSPARC-IIIi 3.4 on-line MB/C1/P0
2 1592 MHz 1MB SUNW,UltraSPARC-IIIi 3.4 on-line MB/C2/P0
3 1592 MHz 1MB SUNW,UltraSPARC-IIIi 3.4 on-line MB/C3/P0
_
$more /etc/release
Solaris 10 8/07 s10s_u4wos_12b SPARC
Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
Use is subject to license terms.
Assembled 16 August 2007
Patch Cluster - EIS 29/01/08(v3.1.5)
What other methods can I use?
EDITED:
It looks like we have a 4 processor system with one core each:
$psrinfo -p
4
_
$psrinfo -pv
The physical processor has 1 virtual processor (0)
UltraSPARC-IIIi (portid 0 impl 0x16 ver 0x34 clock 1592 MHz)
The physical processor has 1 virtual processor (1)
UltraSPARC-IIIi (portid 1 impl 0x16 ver 0x34 clock 1592 MHz)
The physical processor has 1 virtual processor (2)
UltraSPARC-IIIi (portid 2 impl 0x16 ver 0x34 clock 1592 MHz)
The physical processor has 1 virtual processor (3)
UltraSPARC-IIIi (portid 3 impl 0x16 ver 0x34 clock 1592 MHz)
Solution 1:
The command psrinfo -pv
is the command you are looking for. It gives you the number of physical cpus plus the count of virtual processor per physical processor.
For example on a V880 it looks like this:
The physical processor has 1 virtual processor (0)
UltraSPARC-III+ (portid 0 impl 0x15 ver 0x23 clock 900 MHz)
The physical processor has 1 virtual processor (1)
UltraSPARC-III+ (portid 1 impl 0x15 ver 0x23 clock 900 MHz)
The physical processor has 1 virtual processor (2)
UltraSPARC-III+ (portid 2 impl 0x15 ver 0x23 clock 900 MHz)
The physical processor has 1 virtual processor (3)
UltraSPARC-III+ (portid 3 impl 0x15 ver 0x23 clock 900 MHz)
The physical processor has 1 virtual processor (4)
UltraSPARC-III+ (portid 4 impl 0x15 ver 0x23 clock 900 MHz)
The physical processor has 1 virtual processor (5)
UltraSPARC-III+ (portid 5 impl 0x15 ver 0x23 clock 900 MHz)
The physical processor has 1 virtual processor (6)
UltraSPARC-III+ (portid 6 impl 0x15 ver 0x23 clock 900 MHz)
The physical processor has 1 virtual processor (7)
UltraSPARC-III+ (portid 7 impl 0x15 ver 0x23 clock 900 MHz)
Hope that helps. :-)
EDIT
A multicore machine has e.g. this output
The physical processor has 4 virtual processors (0-3)
SPARC64-VI (portid 1024 impl 0x6 ver 0x93 clock 2150 MHz)
The physical processor has 4 virtual processors (8-11)
SPARC64-VI (portid 1032 impl 0x6 ver 0x93 clock 2150 MHz)
Solution 2:
You can check the number of physical processors using the psrinfo -p command.
root@sunt2000:/ # uname -a SunOS sunt2000 5.10 Generic_139555-08 sun4v sparc SUNW,Sun-Fire-T200
Checking the number of physical processors
root@sunt2000:/ # psrinfo
-p 1
Verbose output from the same command above.
root@sunt2000:/ # psrinfo -vp
The physical processor has 32 virtual processors (0-31)
UltraSPARC-T1 (chipid 0, clock 1200 MHz)
Below is a Sun Fire V445 that has the UltraSPARC IIIi and it is single core.
root@sunv445:/ # uname -a
SunOS sunv445 5.10 Generic_120011-14 sun4u sparc SUNW,Sun-Fire-V445
root@sunv445:/ # psrinfo
0 on-line since 11/05/2008 04:27:24
1 on-line since 11/05/2008 04:27:24
2 on-line since 11/05/2008 04:27:16
It has 3 physical processors.
root@sunv445:/ # psrinfo -p
3
I believe only UltraSPARCs IV are dual core. No issues with IIIi
root@sunv445:/ # psrinfo -vp
The physical processor has 1 virtual processor (0)
UltraSPARC-IIIi (portid 0 impl 0x16 ver 0x34 clock 1592 MHz)
The physical processor has 1 virtual processor (1)
UltraSPARC-IIIi (portid 1 impl 0x16 ver 0x34 clock 1592 MHz)
The physical processor has 1 virtual processor (2)
UltraSPARC-IIIi (portid 2 impl 0x16 ver 0x34 clock 1592 MHz)
Solution 3:
Total number of cores in a system is "kstat cpu_info | grep core_id | uniq | wc -l" Divide the total number of cores by the output of "psrinfo -p" to get the cores per physical processor