Huge pages problems prevent Oracle DB to start with WA Agent (Linux)

Huge pages problems prevent Oracle DB to start with WA Agent (Linux)

book

Article ID: 199399

calendar_today

Updated On:

Products

CA Workload Automation DE - Business Agents (dSeries) CA Workload Automation DE - System Agent (dSeries) CA Workload Automation AE - System Agent (AutoSys) CA Workload Automation AE - Business Agents (AutoSys) Workload Automation Agent

Issue/Introduction

Oracle databases may be configured to use 'huge' memory pages and they expect a certain number of them to be available. 
The AdoptOpenJDK JRE in WA agent appears to be reserving around 122 'huge' pages and grows over time.  The Oracle databases would not start until the agent was stopped.

Here are statistics from one of the servers:

root@somehost ~ > grep -i huge /proc/meminfo
AnonHugePages: 0 kB
HugePages_Total: 7210
HugePages_Free: 7199
HugePages_Rsvd: 3121
HugePages_Surp: 0
Hugepagesize: 2048 kB

root@somehost ~ > service espt-root stop
Shutting down CA ESP: Agent service is stopping...
Agent service has been stopped
[ OK ]
root@somehost ~ > grep -i huge /proc/meminfo
AnonHugePages: 0 kB
HugePages_Total: 7210
HugePages_Free: 7210
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB

Oracle started
root@somehost ~ > grep -i huge /proc/meminfo
AnonHugePages: 0 kB
HugePages_Total: 7210
HugePages_Free: 6510
HugePages_Rsvd: 5445
HugePages_Surp: 0
Hugepagesize: 2048 kB

root@somehost ~ > service espt-root start
Starting CA ESP: Agent service is starting...
Agent service has been started
[ OK ]
root@somehost ~ > grep -i huge /proc/meminfo
AnonHugePages: 0 kB
HugePages_Total: 7210
HugePages_Free: 6509
HugePages_Rsvd: 5572
HugePages_Surp: 0
Hugepagesize: 2048 kB

The HugePages_Rsvd value changed dramatically when the agent was stopped.

Environment

Release : 12.0

Component : CA Workload Automation System Agent

Resolution

This can be addressed in one of three ways.

  • Option 1: Increase huge pages on the server to accommodate both the agent and Oracle database.

  • Option 2: Disable huge pages for the agent.
    To disable huge pages on the agent, one must append "-Xlp4k" to the oscomponent.jvm.x.options parameter in the agentparm.txt file for the agent. If his parameter is not defined, then simply define it as oscomponent.jvm.x.options=-Xlp4k

    Note: If this parameter already exists, you should append the "-Xlp4k" setting to the value of this setting.

    Example: 
    oscomponent.jvm.x.options=-XX:+UseGetTimeOfDay;-Xms256m;-Xmx512m;-Xlp4k

    Save the agentparm.txt file and restart the agent.


    Before adding the setting:
    #  cat /proc/meminfo | grep -i huge
    AnonHugePages:         0 kB
    HugePages_Total:     571
    HugePages_Free:      512
    HugePages_Rsvd:      126
    HugePages_Surp:        0
    Hugepagesize:       2048 kB
     
    After adding the setting:
    #  cat /proc/meminfo | grep -i huge
    AnonHugePages:         0 kB
    HugePages_Total:     571
    HugePages_Free:      514
    HugePages_Rsvd:        0
    HugePages_Surp:        0
    Hugepagesize:       2048 kB

  • Option 3: Use HotSpot JVM of AdoptOpenJDK or any other vendor (e.g. Oracle).  The agent is only supported with JRE 8, download JRE 8 build from AdoptOpenJDK or your provider.  NOTE: If you elect to use Oracle JRE, then you will need to ensure that you are licensed to do so. Contact Oracle if you have any doubts on whether you are licensed to use Oracle JRE.