BCM: How to troubleshoot high CPU or RAM usage

Version 6
    Share This:

    This document contains official content from the BMC Software Knowledge Base. It is automatically updated when the knowledge article is modified.


    PRODUCT:

    BMC Client Management


    COMPONENT:

    Client Management


    APPLIES TO:

    Client Management 12.x Master, Client, Relay



    QUESTION:

    The agent causes a high cpu usage on client / relay / master.


    ANSWER:

    0- Are you sure that our agent is guilty?
    The first step to go through is to stop the BCM service and see if the cpu or ram usage persists. If it does then we will continue with below steps else it proves that the issue is with some other service which need to be reported to concerned 3rd party vendor.


    1- Known defect
    Make sure that environment is updated as BCM release hotfixes for high cpu or ram usage, as this one in 12.5 as an example:

                              
    DRZKZ-511Operational rule advertisements on Mac OS systems causes high CPU usage.
      

    2- Antivirus
    There are few chances that the antivirus is the cause of the issue, but it's worth trying as some antvirus can be really damaging to BCM (especially Norton Antivirus). 
    First of all, we should make sure that we have set   antivirus exclusions on our agent install folder and processes. as   This is a prerequisite.  https://communities.bmc.com/docs/DOC-27256
    - Disable antivirus on one of the effected client. 
    - Restart the service of BCM 
    - Check the CPU usage. 


    3- Tunnel
    The more tunnels are open on a relay/master, the more ram will be used. This is more likely to happen if we forced tunnels, or if we have a lot of devices behind NATs. 


    4- Unload module then reload
    A specific module will usually be the cause of a high CPU/RAM usage.  
      A- From the console: 
    If it's possible to access to the device from the console, this method will be much easier/fast:  
    - select the device in the console  
     
    - go to Agent configuration > Module Configuration, then to the tab Configuration  
     
    - unload all not mandatory modules by clicking on "Unload Modules":  
      User-added image 
     
    The option "Unload Modules..." will be greyed out if we try to unload a mandatory module.  
     
    Click "No" when asked if we want this to be persistent:  
      User-added image 
     
      NOTE: 
    - the easiest way to know which module is mandatory is to check the list in a rollout configuration. Mandatory modules will be identified by the icon we can see on the line highlighted in orange:  
      User-added image 
     
    - The module "BCM Database" is mandatory and only available on the master  
     
     
      B- From the configuration file 
    We will more likely have to edit the file ../config/mtxagent.ini and unload the modules manually. It is easy, though we will have to restart the service of the agent after every modification, which is not necessary when we do it from the console.  
    - edit the file ../config/mtxagent.ini then comment the begining of each line    of the section [Modules] with a ";" except for these modules (replace .dll by .so if it's a linux device): 
      
      AsynchronousActions=../modules/agent/AsynchronousActions.dll  
    MtxCoreUtils=../modules/agent/MtxCoreUtils.dll  
    EventLogManager=../modules/agent/EventLogManager.dll  
    FileStore=../modules/agent/FileStore.dll  
    HostAccess=../modules/agent/HostAccess.dll  
    HttpProtocolHandler=../modules/agent/HttpProtocolHandler.dll  
    Identity=../modules/agent/Identity.dll  
    Relay=../modules/agent/Relay.dll  
    OperationalRules=../modules/agent/OperationalRules.dll  
    Privacy=../modules/agent/Privacy.dll  
    RemoteControl=../modules/agent/RemoteControl.dll  
    Timer=../modules/agent/Timer.dll  
    TransferWindow=../modules/agent/TransferWindow.dll  
    UserAccess=../modules/agent/UserAccess.dll  
    UpdateManager=../modules/agent/UpdateManager.dll 
      
     
    This module will be mandatory as well if we are troubleshooting the master: 
      
      Vision64Database=../modules/agent/Vision64Database.dll 
      
     
    - restart the service  
     
    - check if the CPU or RAM usage is still high.   If it is, do not go through the next steps, contact support right away.  
     
    - reload each module one by one: 
      
      - uncomment one line of the section [Modules]  
    - restart the service  
    - wait and see if the CPU rises again.  
    Go through the same three steps if it doesn't, until we identify the guilty module 
      

    5- send Steps to reproduce and mtxagent debug logs to Support.

    How to enable debug logs 
    https://communities.bmc.com/docs/DOC-26113

    If we can't find the origin of the issue, or if we found it and need more analysis, please: 
    - send the config and log folder from the device 

    - the sqlite related to the module that we could have identified as being guilty for the cpu/ram usage. e.g: the guilty module is "Operational rules", send us the file ../data/operationalrules/operationalrules.sqlite. All these sqlite can be found in ../data/*/*.sqlite. 

    - a summary of the tests we have performed. Please mention that the steps from these article had been performed and then support was contacted. 

     


    Article Number:

    000227028


    Article Type:

    FAQ/Procedural



      Looking for additional information?    Search BMC Support  or  Browse Knowledge Articles