The Oracle DBO_OS_And_Instance_Statistics collection causes a high CPU utilization on the monitored host because of a large number of rows being collected from the server.
An output of the command /proc/*/smaps resulted in hundreds of thousands of rows.
Collecting this output causes a CPU utilization of 95-100% on the monitored Linux host server.
WORKAROUND
Oracle hotfix cartridge 7.3.1.10 is available for this issue. Contact Support for a copy of the fix. The cartridge must be manually deployed to the Foglight Agent Manager (FglAM) after it is installed.
STATUS
Enhancement Request FOG-9577 was logged to split the DBO_OS_And_Instance_Statistics collection into two separate collections:
This has been included in the 8.0 and higher versions of the Oracle cartridge.
-------------
Once the fix has been applied to a system, a groovy script must be used to update the hidden Agent Status Property value to use the two separated collections.
Run the following script in the script console. Knowledge base article 4309796 describes how to run a groovy script via the GUI. Replace the name AGENTNAME with the name of the Oracle agent.
This script turns off the memory collection for a single named Oracle agent.
agentService = server.get("AgentService");
configService = server.get("ConfigService");
def setAspParams(agents, aspName, aspValue) {
for (agent in agents) {
def primaryASP = configService.getAgentInstancePrimaryAsp(agent.getAgentNamespace(), agent.getTypeId(), agent.getId());
primaryASP.setValueByString(aspName, aspValue);
configService.saveConfig(primaryASP);
}
}
def agents = agentService.findByName("AGENTNAME");
setAspParams(agents, "disableMemoryCollection", "true");
return true;
To turn off the memory collection for all Oracle instance agents, run the script named:
Update_all_Oracle_memory_collecting_to_off.groovy
To list the current value for all Oracle instance agents, run the script named:
List_all_Oracle_memory_collecting_settings.groovy
Note: