Tuesday, July 23, 2019

How To Check The Active Enabled Physical Cores on an Exadata Machine


Here is how to check the active enabled physical cores on an Exadata. The link to the oracle doc is below as well. The document also provides information on how to change the enabled cores, a useful feature for Capacity on Demand (COD). Note the COD feature started from Exadata version X4 and newer systems. This feature is useful when you need to increase or decrease the amount of active cores on the database compute node. It is important to know that changing the number of active cores on your Exadata database servers would affect the software licensing cost. In addition note that the number of active cores on the database servers on Oracle Exadata Database Machine X4-2 and newer systems can be reduced only during installation.

https://docs.oracle.com/en/engineered-systems/exadata-database-machine/dbmmn/maintaining-exadata-database-servers.html#GUID-6177B070-EF7C-4858-869D-E82C5F8293C0

In the table below for the most recent Exadata Machines X7 and X8 the minimum and maximum cores per server is shown along with the eligible system configuration. The cores are increments are in multiples of 2.

Oracle Exadata Database MachineEligible SystemsMinimum Cores per ServerMaximum Cores per ServerCore Increments
Oracle Exadata Database MachineX7-2 and X8-2
Any configuration except Eighth Rack
14
48
From 14 to 48, in multiples of 2:
14, 16, 18, ..., 46, 48
Oracle Exadata Database MachineX7-2 and X8-2
Eighth rack
8
24
From 8 to 24, in multiples of 2:
8, 10, 12, ..., 22, 24


You can verify the number of active physical cores using the following command:

DBMCLI> LIST DBSERVER attributes coreCount

Example below from an Exadata X7-2, from 3 database compute nodes. The example below shows only 16 out of the total 48 physical cores are enabled.

[root@prod_node1 ~]# dbmcli
DBMCLI: Release  - Production on Wed Jul 24 00:06:08 GMT-00:00 2019 Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved. 
DBMCLI> LIST DBSERVER attributes coreCount         
16/48
[root@prod_node2 ~]# dbmcli
DBMCLI: Release  - Production on Wed Jul 24 00:32:34 GMT 2019 Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
DBMCLI> LIST DBSERVER attributes coreCount         
16/48                          
[root@prod_node3 ~]# dbmcli
DBMCLI: Release  - Production on Wed Jul 24 00:35:20 GMT 2019 Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
DBMCLI> LIST DBSERVER attributes coreCount         
16/48


On another note with this example if you were to check the CPU_COUNT parameter that would report two times the number of current active cores which would be 2 x 16 => 32. We multiply by two since each intel CPU chip is capable of hyper threading which means one physical core is actually two virtual threads. So for an Exadata compute node with 16 active active cores we would show 32 for the value of the CPU_COUNT parameter since this parameter shows total active threads.

SQL> show parameter cpu_count

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
cpu_count                            integer     32