• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer navigation

The Geek Diary

  • OS
    • Linux
    • CentOS/RHEL
    • Solaris
    • Oracle Linux
    • VCS
  • Interview Questions
  • Database
    • oracle
    • oracle 12c
    • ASM
    • mysql
    • MariaDB
  • DevOps
    • Docker
    • Shell Scripting
  • Big Data
    • Hadoop
    • Cloudera
    • Hortonworks HDP

Oracle Database 12c2 : CPU_COUNT is Wrong

by admin

The Problem

On Oracle database 12.2.0.1 version, cpu_count is not correct: OS has 128 CPU in total, however CPU_COUNT is only 104.

SQL> show parameter cpu

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cpu_count integer 104                   <<<<<<<<<<<< 104 from database 
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 128                          <<<<<<<<<<<< 128 on OS

Alert log shows:

2017-12-14T18:01:48.697520+08:00
Domain name: sys                   <==============
2017-12-14T18:01:48.697583+08:00
Per process system memlock (soft) limit = 909G
<....>
2017-12-14T18:01:49.557071+08:00
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
Initial number of CPU is 104       <============== initial number of CPU is 104
Number of processor cores in the system is 64
Number of processor sockets in the system is 4

The Solution

cgroups is configured and limited the total CPU oracle can be using.

1. alert log shows that a domain sys is being used:

2017-12-14T18:01:48.697520+08:00
Domain name: sys   <==============
2017-12-14T18:01:48.697583+08:00
Per process system memlock (soft) limit = 909G
....

2. Use "cgsnapshot -s" to check the cgroups configuration, and observed that sys group only gets 104 CPU allocated

# cgsnapshot -s > /tmp/cg.conf
# cat /tmp/cg.conf
# Configuration file generated by cgsnapshot
mount {
cpuset = /cgroup/cpuset;
memory = /cgroup/cpuset;
}
....

group sys {                                   <===================== group: sys
cpuset {
cpuset.memory_spread_slab="0";
cpuset.memory_spread_page="0";
cpuset.memory_migrate="0";
cpuset.sched_relax_domain_level="-1";
cpuset.sched_load_balance="1";
cpuset.mem_hardwall="0";
cpuset.mem_exclusive="0";
cpuset.cpu_exclusive="0";
cpuset.mems="0-3";
cpuset.cpus="0-25,32-57,64-89,96-121";   <============== only allocated 104 CPU to this group
}

The solution here is to remove CGROUPS configuration to have all CPU allocated to Oracle.

Filed Under: oracle, oracle 12c

Some more articles you might also be interested in …

  1. What are Oracle Key Vault Roles
  2. Oracle 11g new feature – ASM Fast Rebalance
  3. What are the implications of rebuilding indexes in Oracle Database
  4. Oracle Interview Questions : Using srvctl V/s sqlplus and pfile V/s spfile in RAC
  5. How to configure Partitioned Block Devices (Non-ASMLIB) And Assign Them To ASM
  6. RMAN backup Concepts for Oracle RAC
  7. Oracle Database 12c New Feature – Move a Datafile Online
  8. How To Cancel A SQL Query In Oracle Database 18c
  9. How to duplicate a Oracle Database to a previous Incarnation
  10. How to Resize the Undo Tablespace in Oracle Database

You May Also Like

Primary Sidebar

Recent Posts

  • raw: command not found
  • raw Command Examples in Linux
  • rankmirrors Command Examples in Linux
  • radeontop: command not found

© 2023 · The Geek Diary

  • Archives
  • Contact Us
  • Copyright