F5 CPU and Memory Utilization

Some F5 BIG IP's do not support the hrProcessorLoad OID in the HOST-RESOURCES-MIB, and therefor do not correctly report CPU or memory.

From referencing the following thwack post, I created the necessary pollers and transforms to correctly report both CPU and memory.

    

For CPU Utilization.
1 "sysStatTmTotalCycles -"Traffic management CPU usage." OID="1.3.6.1.4.1.3375.2.1.1.2.1.41"
2 "sysStatTmIdleCycles" -Traffic management CPU usage. OID="1.3.6.1.4.1.3375.2.1.1.2.1.42"
3 Transform -Formula="100-({sysStatTmIdleCycles}/{sysStatTmTotalCycles}*100)

For Memory Utilization.
1 "sysStatMemoryTotal-="The total memory available in bytes for TMM (Traffic Management Module)."  OID="1.3.6.1.4.1.3375.2.1.1.2.1.44"

2 "sysStatMemoryUsed" ="The memory in use in bytes for TMM (Traffic Management Module)."  OID="1.3.6.1.4.1.3375.2.1.1.2.1.45"

3 Transform -Formula="{sysStatMemoryUsed}/{sysStatMemoryTotal}*100

  • Upcoming Orion NPM 10.4 is adding a native support for F5-BIGIP-SYSTEM-MIB, so it should be able to poll TMM stats out of the box. You can sign up for RC to give it a try, even now. Your feedback will be much appreciated.

  • Here is direct from F5 on the various BIG-IP there are multiple CPUs - I'm struggling with it right now with our lab, ours are not in production yet, but they will be by end of 2Q

    Table 11.13 Required OIDs for automatic collection of Global Host CPU Usage graph metrics Performance Graph
    (Configuration utility) Graph Metric Required SNMP OIDs










    CPU Usage









    Gobal Host CPU Usage 5-second Polling Interval
    sysGlobalHostCpuUser5s (.1.3.6.1.4.1.3375.2.1.1.2.20.14)
    sysGlobalHostCpuNice5s (.1.3.6.1.4.1.3375.2.1.1.2.20.15)
    sysGlobalHostCpuSystem5s (.1.3.6.1.4.1.3375.2.1.1.2.20.16)
    sysGlobalHostCpuIdle5s (.1.3.6.1.4.1.3375.2.1.1.2.20.17)
    sysGlobalHostCpuIrq5s (.1.3.6.1.4.1.3375.2.1.1.2.20.18)
    sysGlobalHostCpuSoftirq5s (.1.3.6.1.4.1.3375.2.1.1.2.20.19)
    sysGlobalHostCpuIowait5s (.1.3.6.1.4.1.3375.2.1.1.2.20.20)
    sysGlobalHostCpuUsageRatio5s (.1.3.6.1.4.1.3375.2.1.1.2.20.21)
    sysGlobalHostCpuUsageRatio (.1.3.6.1.4.1.3375.2.1.1.2.20.13)
    1-minute Polling Interval
    sysGlobalHostCpuUser1m (.1.3.6.1.4.1.3375.2.1.1.2.20.22)
    sysGlobalHostCpuNice1m (.1.3.6.1.4.1.3375.2.1.1.2.20.23)
    sysGlobalHostCpuSystem1m (.1.3.6.1.4.1.3375.2.1.1.2.20.24)
    sysGlobalHostCpuIdle1m (.1.3.6.1.4.1.3375.2.1.1.2.20.25)
    sysGlobalHostCpuIrq1m (.1.3.6.1.4.1.3375.2.1.1.2.20.26)
    sysGlobalHostCpuSoftirq1m (.1.3.6.1.4.1.3375.2.1.1.2.20.27)
    sysGlobalHostCpuIowait1m (.1.3.6.1.4.1.3375.2.1.1.2.20.28)
    sysGlobalHostCpuUsageRatio1m (.1.3.6.1.4.1.3375.2.1.1.2.20.29)
    5-minute Polling Interval
    sysGlobalHostCpuUser5m (.1.3.6.1.4.1.3375.2.1.1.2.20.30)
    sysGlobalHostCpuNice5m (.1.3.6.1.4.1.3375.2.1.1.2.20.31)
    sysGlobalHostCpuSystem5m (.1.3.6.1.4.1.3375.2.1.1.2.20.32)
    sysGlobalHostCpuIdle5m (.1.3.6.1.4.1.3375.2.1.1.2.20.33)
    sysGlobalHostCpuIrq5m (.1.3.6.1.4.1.3375.2.1.1.2.20.34)
    sysGlobalHostCpuSoftirq5m (.1.3.6.1.4.1.3375.2.1.1.2.20.35)
    sysGlobalHostCpuIowait5m (.1.3.6.1.4.1.3375.2.1.1.2.20.36)
    sysGlobalHostCpuUsageRatio5m (.1.3.6.1.4.1.3375.2.1.1.2.20.37)

    Using a custom polling interval
    The sysMultiHostCpu and sysGlobalHostCpu MIBs include additional OIDs that you can use to calculate CPU performance data based on a custom polling interval, that is, a polling interval that you choose. Using a custom polling interval requires you to poll each individual OID twice at an interval of your choice, calculate the delta of the two polls, and then perform a calculation according to a predefined formula.
    Table 11.14 includes a list of OIDs to use when collecting CPU performance data with a custom polling interval. Note that in this case, you do not use a CPU usage ratio OID. Following the table is the procedure for collecting the data.
    Table 11.14 Required SNMP OIDs for collecting CPU data manually Performance Graph
    (Configuration utility) Graph Metric Required SNMP OIDs






    CPU Usage CPU[0-n] sysMultiHostCpuUser (.1.3.6.1.4.1.3375.2.1.7.5.2.1.4)
    sysMultiHostCpuNice (.1.3.6.1.4.1.3375.2.1.7.5.2.1.5)
    sysMultiHostCpuSystem (.1.3.6.1.4.1.3375.2.1.7.5.2.1.6)
    sysMultiHostCpuIdle (.1.3.6.1.4.1.3375.2.1.7.5.2.1.7)
    sysMultiHostCpuIrq (.1.3.6.1.4.1.3375.2.1.7.5.2.1.8)
    sysMultiHostCpuSoftirq (.1.3.6.1.4.1.3375.2.1.7.5.2.1.9)
    sysMultiHostCpuIowait (.1.3.6.1.4.1.3375.2.1.7.5.2.1.10)
    Global Host CPU Usage sysGlobalHostCpuCount (.1.3.6.1.4.1.3375.2.1.1.2.20.4)
    sysGlobalHostActiveCpu (.1.3.6.1.4.1.3375.2.1.1.2.20.5)
    sysGlobalHostCpuUser (.1.3.6.1.4.1.3375.2.1.1.2.20.6)
    sysGlobalHostCpuNice (.1.3.6.1.4.1.3375.2.1.1.2.20.7)
    sysGlobalHostCpuSystem (.1.3.6.1.4.1.3375.2.1.1.2.20.8)
    sysGlobalHostCpuIdle (.1.3.6.1.4.1.3375.2.1.1.2.20.9)
    sysGlobalHostCpuIrq (.1.3.6.1.4.1.3375.2.1.1.2.20.10)
    sysGlobalHostCpuSoftirq (.1.3.6.1.4.1.3375.2.1.1.2.20.11)
    sysGlobalHostCpuIowait (.1.3.6.1.4.1.3375.2.1.1.2.20.12)
    TMM CPU Usage sysStatTmTotalCycles (.1.3.6.1.4.1.3375.2.1.1.2.1.41)
    sysStatTmIdleCycles (.1.3.6.1.4.1.3375.2.1.1.2.1.42)
    sysStatTmSleepCycles (.1.3.6.1.4.1.3375.2.1.1.2.1.43)

    To calculate CPU usage data manually
    1. Poll the OID sysMultiHostCpuUser (.1.3.6.1.4.1.3375.2.1.7.5.2.1.4) twice, at a 10-second interval.
    This results in two values, and .

    Note: Although this example uses an interval of ten seconds, the interval can actually be any duration that you choose.
    2. Calculate the delta of the two poll values:

    = -
    3. Repeat steps one and two for each OID pertaining to the CPU[0-n] graph metric.

    4. Repeat steps 1 and 2 again, using the OIDs from the MIBs sysStatTm and sysGlobalHostCpu.

    5. Calculate the values of the graph metrics, using the formulas shown in Table 11.15.

    Table 11.15 Formulas for calculating metrics on CPU use Performance Graph
    (Configuration utility) Graph Metric Required calculations for CPU use




    CPU Usage CPU[0-n] ( + + ) / ( + + + + + + ) *100
    Global Host CPU Usage ( + + ) / ( + + + + + + ) *100
    TMM CPU Usage (( - ( + )) / ) *100
  • I have the same problem as agsmi. The formula for CPU is reporting > 99% utilization and the device itself reports about 6%. Anyone have it working?
  • Has anyone gotten this to work properly? I configured the pollers and transform exactly as described above, but the resulting value is always >90. Looking at TMM CPU usage in the performance chart on the Big-IP itself yields significantly lower numbers.