Oracle and NUMA Arechitecture

General Information
Library Note Morgan's Library Page Footer
The Library is currently in the process of being upgraded from Oracle Database Version to Demos are being upgraded to reflect the new Container paradigm as well as EBR (Edition Based Redefinition) and may contain references to CDBs, PDBs, and other objects you may not be familiar with such as CDB_OBJECTS_AE: Welcome to 12c.
Note: You should expect that any Sun/Solaris server onto which Oracle is being deployed has been configured by the System Admins for NUMA (Non-Uniform Memory Access). You can also make this default assumption with H/P blade appliances such as the Cisco UCS. But no matter the architecture you should check every server on which Oracle is installed.


Because the Oracle database does not recognized NUMA on installation or any other time unless you tell it the serrver is NUMA configured. And there is almost an equals sign one can draw between ORA-04030 and not be configured for NUMA. This page demonstrates how you can tell and what you should do about it if you find NUMA.

Also be sure you read the following MyOraclesupport doc because you may want to push back on your System Admins and have NUMA disabled.
Enable Oracle NUMA support with Oracle Server Version (Doc ID 864633.1)
And also read this important work on the Oracle Database and NUMA by Kevin Closson.
You Buy a NUMA System, Oracle Says Disable NUMA! What Gives
Is NUMA a good thing or a bad thing? Like with everything else in Oracle ... it depends.
Detecting NUMA
Not configured [oracle@alpha1 ~]$ numactl --hardware
available: 1 nodes (0)
node 0 size: 4095 MB
node 9 free: 648MB
node distances:
node   0
  0:  10

[oracle@alpha1 ~]$ numactl --show
policy: default
preferred node: current
physcpubind: 0
nodebind: 0
membind: 0
Configured [dmorgan@lxorap1n5 ~]$ numactl --hardware
available: 2 nodes (0-1)
node 0 size: 48457 MB
node 0 free: 269 MB
node 1 size: 48480 MB
node 1 free: 47 MB
node distances:
node   0   1
  0:  10  20
  1:  20  10

[dmorgan@lxorap1n5 ~]$ numactl --show
policy: default
preferred node: current
physcpubind: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
cpubind: 0 1
nodebind: 0 1
membind: 0 1
Database Configuration
Validate database NUMA configuration conn / as sysdba

set linesize 141
col PNAME format a40
col PVAL format a20
col PDESC format a60

SELECT a.ksppinm PNAME, c.ksppstvl PVAL, a.ksppdesc PDESC, b.ksppstdf PDFLT
FROM x$ksppi a, x$ksppcv b, x$ksppsv c
WHERE a.indx = b.indx
AND a.indx = c.indx
AND LOWER(a.ksppinm) LIKE '%numa%'
Configure the database for NUMA conn / as sysdba

ALTER SYSTEM SET "_enable_NUMA_support" = TRUE
COMMENT= 'NUMA Support Enabled 15-Mar-2014'

-- then bounce the database

Related Topics

Morgan's Library Page Footer
This site is maintained by Dan Morgan. Last Updated: This site is protected by copyright and trademark laws under U.S. and International law. © 1998-2014 Daniel A. Morgan All Rights Reserved