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)
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:
Hope that helps. :-)
EDIT
A multicore machine has e.g. this output
You can check the number of physical processors using the psrinfo -p command.
Checking the number of physical processors
Verbose output from the same command above.
Below is a Sun Fire V445 that has the UltraSPARC IIIi and it is single core.
It has 3 physical processors.
I believe only UltraSPARCs IV are dual core. No issues with IIIi
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
The information reported by "kstat cpu_info" can be used to work out how many processors (sockets) you have, how many cores per processor, and how many CMP threads per core.
If you don't care about the distinction between cores and CMP threads, "psrinfo -pv" will suffice.
There's always
I suspect your prtdiag -v though lists the cores quite nicely in the Location field. Looks like you have a single CPU, quad core?
Not sure if it helps, but a dual-processor UltraSPARC-IIIi box shows up like this:
All wrong... You can't get the number of cores by just using a command line (to this date). Nothing in there will tell it to you directly, thought you can do some math to give you just an idea, and based on how old your box is.
You have to know your CPU cores you purchased and by looking atyour hardware specs, then from there, you can compute the threads per core. Now, sun now ships an 8-core, you can even get the same number of virtual CPUS if you have more Physical CPU on quad core vs less Physical CPU on 8-core system.