Additional Details About System Health Monitor (SHM)

System Health Monitor (SHM) is integrated and enabled by default in AHF. AHF now includes the SHM files in its diagnostic collection.

System Health Monitor (SHM) monitors operating system metrics in real time for processes, memory, network, IO and disk to troubleshoot and root cause the system performance issues in real time as well as root cause analysis of past issues. System Health Monitor (SHM) analysis will be available in AHF Insights. For more information, see Explore Diagnostic Insights.

SHM operates as a daemon process, triggered and controlled by AHF, enabled by default, but it is only available on Single-Instance Database and non-GI based systems.

Also, you can use the ahfctl statusahf command to check the status of System Health Monitor.

  • To start SHM:

    Run this command only if SHM has been stopped previously for some reason and needs to be switched back on.

    ahf configuration set --property ahf.collectors.enhanced_os_metrics --value on

    Running the command enables ahf-sysmon to be started and the TFA daemon will then start and monitor it.

  • To stop SHM:
    ahf configuration set --property ahf.collectors.enhanced_os_metrics --value off

    Running the commands checks if ahf-sysmon is up or not. If it's running, the command will kill the process and stops ahf-sysmon.

  • To verify the default value of SHM:

    ahf configuration get --property ahf.collectors.enhanced_os_metrics
    ahf.collectors.enhanced_os_metrics: on
  • To verify the SHM process (ahf-sysmon) is active by default:

    ps -fe | grep sysmon
    root     3333453  1  0 22:44 ?   00:00:00 /opt/oracle.ahf/shm/ahf-sysmon/bin/ahf-sysmon
  • To check SHM JSON files:

    Locate the JSON files in the SHM data directory /opt/oracle.ahf/data//shm

  • To check if SHM runs under the same cgroup of TFAMain or not:

    -bash-4.4$ ps -ef | grep ahf-sysmon
    root        3232       1  0 09:38 ?        00:00:47 /opt/oracle.ahf/shm/ahf-sysmon/bin/ahf-sysmon
    testuser   155833  155678  0 17:04 pts/0    00:00:00 grep --color=auto ahf-sysmon
    -bash-4.4$ cat /proc/3232/cgroup | grep "cpu"
    8:cpu,cpuacct:/oratfagroup
    4:cpuset:/
    -bash-4.4$ ps -ef | grep tfa
    root        1945       1  0 09:37 ?        00:00:02 /bin/sh /etc/init.d/init.tfa run >/dev/null 2>&1
    -bash-4.4$ cat /proc/2851/cgroup | grep "cpu"
    8:cpu,cpuacct:/oratfagroup
    4:cpuset:/
    -bash-4.4$ cat /proc/3232/cgroup | grep "cpu"
    8:cpu,cpuacct:/oratfagroup
    4:cpuset:/
    cat /proc/[PID_OF_AHF-SYSMON]/cgroup | grep "cpu"
    cat /proc/[PID_OF_TFA]/cgroup | grep "cpu"
  • To verify SHM files are collected in AHF collection:

    • As prerequisite, run:

      tfactl set smartprobclassifier=off
    • Then run:
      tfactl diagcollect -last 1h -tag shm_last_1h; 
      unzip -l $REPOSITORY_ROOT/shm_last_1h/$HOSTNAME*.zip

      A directory called SHM should be present in generated zip file.

    • And finally run:

      tfactl diagcollect -last 1h
      Archive:  /opt/oracle.ahf/data/repository/collection_Wed_Apr_10_22_03_04_UTC_2024_node_all/test-node.tfa_Wed_Apr_10_22_03_03_UTC_2024.zip | grep SHM
        Length      Date    Time    Name
      ---------  ---------- -----   ----
            327  04-10-2024 22:03   test-node/SHMDATA/shmdataconverter_3279258.log
           6660  04-10-2024 22:03   test-node/SHMDATA/shmosmeta_1923000.json
          43575  04-10-2024 22:03   test-node/SHMDATA/shmosmetricdescription.json
        9561411  04-10-2024 22:03   test-node/SHMDATA/shmosdata_test-node_2024-04-10-2100.log
         997193  04-10-2024 22:03   test-node/SHMDATA/shmosdata_test-node_2024-04-10-2200.log