Updated: 3/11/08 10:23 AM
On single CPU systems, although the Linux operating system and TMM share CPU0, the CPU usage graph in the Configuration utility displays CPU0 usage and TMM CPU usage separately. CPU0 represents the active CPU usage of all user and system processes, excluding the Traffic Management Microkernal (TMM) process. TMM CPU Usage represents the active CPU usage of the TMM process only.
Viewing the CPU Usage Graph
To view the CPU Usage Graph from the Configuration utility, perform the following procedure:
- Log in to the Configuration utility.
- Click Overview.
- Click Performance.
- Click the System Menu.
Understanding the TMM CPU usage
On the CPU usage graph, TMM CPU Usage represents the active CPU usage of the TMM process only. For example, if the system CPU is reporting 100 percent and TMM is reporting 90 percent (even if TMM is idle and not being used), the remaining 10 percent is displayed on the CPU Usage Graph for CPU0.
When the TMM process starts on an idle system, TMM appears to consume nearly 100 percent of the CPU when viewed using the Linux top utility. From the standpoint of the Linux operating system, this usage report is correct, as TMM does use all of the CPU time. However, TMM's idle and sleep cycles are not visible to the Linux operating system because TMM is a microkernel that appears as a user process.
Note: F5 Networks does not recommend using command line tools such as the top and ps commands to gather the active CPU information. For more information, refer to SOL3572: CPU usage is significantly higher after upgrading to BIG-IP version 9.0 or later.
You can view the CPU utilization information as recorded by TMM, by typing the b global command from the command line, and locating the TMM Cycles entry in the resulting GLOBAL STATISTICS report. A sample output of the GLOBAL STATISTICS information appears similar to the following example:
# b global<br />GLOBAL STATISTICS --<br />Client side<br /> (cur, max, tot) = (6, 13, 357447)<br /> (pkts, bits) in = (963322, 1.129G), out = (760292, 4.173G)<br /> PVA (cur, max, tot) = (0, 0, 0)<br /> PVA (pkts, bits) in = (0, 0), out = (0, 0)<br />Server side<br /> (cur, max, tot) = (6, 13, 117109)<br /> (pkts, bits) in = (722984, 340.6M), out = (701403, 4.169G)<br /> PVA (cur, max, tot) = (0, 0, 0)<br /> PVA (pkts, bits) in = (0, 0), out = (0, 0)<br />PVA assisted connections (curr, tot) = (0, 0)<br />TMM cycles (total, idle, sleep) = (118.3T, 118.3T, 0) <br /> <=== TMM cycle statistics<br />Denials (maint, addr full, serv full) = (0, 0, 0)<br /> (no serv, no listen, no mem, no lic) = (0, 2001, 0, 0)<br />CPU (total, active, multi-mode) = (2, 2, SMP)<br />Memory (total, used) = TMM (748.0M, 23.92M), host (1.000G, 366.3M)<br />Packets (drop, err in, err out) = (0, 0, 0)<br />HTTP requests = 0<br />Authorization --<br /> results (yes, no, defer, err) = (0, 0, 0, 0)<br /> sessions (cur, max, tot) = (0, 0, 0)<br />OneConnect (curr, max, reuse, new) = (0, 0, 0, 0)<br />Stream replacements = 0<br />XML profile errors = 0<br />IIOP --<br /> (req, resp, err) = (0, 0, 0)<br /> (cancel, frags) = (0, 0)<br />RTSP --<br /> (req, resp, err, Ileave) = (0, 0, 0, 0)<br />SCTP --<br /> (accept, accept fail) = (0, 0)<br /> (connect, connect fail) = (0, 0)<br /> (expire, abandon, rxrst) = (0, 0, 0)<br /> (rxbadsum, rxcookie, rxbadcookie) = (0, 0, 0)
This example output shows the total number of cycles consumed by TMM since the TMM process started, and how many of the cycles were sleep and idle cycles. This information is used in the CPU performance graph, which displays the TMM usage (TMM CPU Usage) correctly as 0 percent when the system is idle.
The CPU0 graph represents the CPU usage of the Linux kernel and the other daemons. When other daemons require resources, TMM yields CPU time to those daemons (by way of the Linux process scheduler). If TMM is idle, almost 100 percent of the CPU can be yielded; however, when TMM is being heavily used (in terms of ingress packet rate), up to 20 percent of the CPU will be yielded to other processes.
Note: The graph represents an average value over time, so the CPU values (CPU0) may show spikes over 20 percent even when TMM is heavily used. When TMM is lightly loaded, it will yield more than 20 percent, but since no accurate, instantaneous value for the yield is available from TMM, the graph will not show values for TMM CPU Usage and CPU0 that equal 100 percent.
Unlike CPU0 statistics, TMM statistics are available through SNMP. The OIDs and formula used to calculate the CPU usage is documented under the Configuring SNMP chapter in the BIG-IP Network and System Management Guide.
For more information about TMM CPU utilization, refer to SOL3242: Overview of Traffic Management Microkernel (TMM) CPU and RAM usage.
F5 Networks is tracking the need for a CPU0 statistics feature through SNMP as CR63272. CPU0 statistics are not currently available through SNMP. To monitor the status of this CR, refer to the BIG-IPLTM, GTM, or ASM Release Notes.