Hi all,
I'm setting up an Oracle database server in a Solaris 11 zone on a SPARC T5-2 server and I need to restrict it to no more than 4 cores in order to comply with our Oracle CPU-based licences. The server has 2 x CPUs with 16 cores each. Running psrinfo in the global zone I see CPUs 0-255 listed, so it's obviously showing me the total number of threads (8 per core). Therefore, when configuring my non-global zone I used the dedicated-cpu directive in order to restrict the number of cores in use by that zone, but also in order to be flexible (using the dynamic resource pool service) so that when the zone isn't using resources they can be used elsewhere on the box. I used the following configuration directives when setting up the non-global zone:
add dedicated-cpu
set ncpus=8-32
end
I figured that I needed to divide the number of threads in the system by the number of cores and set my ncpus value accordingly, so what I think I have allocated above is a minimum of 1 core and a maximum of 4 cores for my non-global zone. In fact, when I run psrinfo inside the non-global zone it does indeed show me 32 threads:
# psrinfo
0 on-line since 01/14/2014 13:51:47
1 on-line since 01/14/2014 13:51:51
2 on-line since 01/14/2014 13:51:51
3 on-line since 01/14/2014 13:51:51
6 on-line since 01/14/2014 13:51:51
7 on-line since 01/14/2014 13:51:51
8 on-line since 01/14/2014 13:51:51
9 on-line since 01/14/2014 13:51:51
10 on-line since 01/14/2014 13:51:51
11 on-line since 01/14/2014 13:51:51
12 on-line since 01/14/2014 13:51:51
13 on-line since 01/14/2014 13:51:51
14 on-line since 01/14/2014 13:51:51
15 on-line since 01/14/2014 13:51:51
16 on-line since 01/14/2014 13:51:51
17 on-line since 01/14/2014 13:51:51
18 on-line since 01/14/2014 13:51:51
19 on-line since 01/14/2014 13:51:51
20 on-line since 01/14/2014 13:51:51
21 on-line since 01/14/2014 13:51:51
22 on-line since 01/14/2014 13:51:51
23 on-line since 01/14/2014 13:51:51
24 on-line since 01/14/2014 13:51:51
25 on-line since 01/14/2014 13:51:51
27 on-line since 01/14/2014 13:51:51
28 on-line since 01/14/2014 13:51:51
29 on-line since 01/14/2014 13:51:51
30 on-line since 01/14/2014 13:51:51
31 on-line since 01/14/2014 13:51:51
54 on-line since 01/14/2014 13:51:51
59 on-line since 01/14/2014 13:51:51
132 on-line since 01/14/2014 13:51:51
...but if I run psrinfo -pv within the non-global zone I get the following output:
# psrinfo -pv
The physical processor has 6 cores and 31 virtual processors (0-3 6-25 27-31 54 59)
The core has 6 virtual processors (0-3 6 7)
The core has 8 virtual processors (8-15)
The core has 8 virtual processors (16-23)
The core has 7 virtual processors (24 25 27-31)
The core has 1 virtual processor (54)
The core has 1 virtual processor (59)
SPARC-T5 (chipid 0, clock 3600 MHz)
The physical processor has 1 core and 1 virtual processor (132)
The core has 1 virtual processor (132)
SPARC-T5 (chipid 1, clock 3600 MHz)
I can see that I have my 32 threads here ("31 virtual processors (0-3 6-25 27-31 54 59)" and "1 virtual processor (132)") but what I don't understand is the reference to "The physical processor has 6 cores" and "The physical processor has 1 core". If it is referring to the physical processors in the underlying hardware of the global zone then this is wrong as each of them has 16 cores, but if it is referring to the 'dedicated' CPUs of the non-global zone then my configuration may be wrong as I have more cores available than (the 4 that) I should have.
Can anyone shed any light on this and confirm that my zone configuration is correct to use 4 cores, or alternatively let me know how I can achieve this in my zone configuration.
Thank you.