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

The Geek Diary

CONCEPTS | BASICS | HOWTO

  • OS
    • Linux
    • CentOS/RHEL
    • Solaris
    • Oracle Linux
    • Linux Services
    • VCS
  • Database
    • oracle
    • oracle 12c
    • ASM
    • mysql
    • MariaDB
    • Data Guard
  • DevOps
    • Docker
    • Shell Scripting
  • Interview Questions
  • 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. Oracle 11g – New ASM features
  2. CentOS / RHEL : Installing and Configuring ASMLib
  3. How to Turn Archiving ON and OFF in Oracle database
  4. Oracle Database : Performing Incomplete Recovery from a missing archivelog file (Change-Based, Cancel-Based, Time-Based)
  5. How to recreate Control file in Oracle Database
  6. How to Move User datafiles between ASM Diskgroups using Incrementally Updated Backups
  7. Interview Questions : Oracle Flex ASM 12c
  8. ORA-1031 When Connecting Remotely AS SYSDBA
  9. Why Can I Login AS SYSDBA With Any Username and Password
  10. How To Add New Disk to An Existing Diskgroup on RAC Cluster or Standalone ASM Configuration

You May Also Like

Primary Sidebar

Recent Posts

  • How to set the default character set in MySQL and how to propagate it in a master-master replication scenario
  • “Connection reset by peer” – error while ssh into a CentOS/RHEL system with a specific user only
  • MySQL: how to figure out which session holds which table level or global read locks
  • Recommended Configuration of the MySQL Performance Schema
  • Archives
  • Contact Us
  • Copyright

© 2021 · The Geek Diary