Forum Discussion
Steven_Hotovy_8
Nimbostratus
May 25, 2005Getting CPU Utilization in BigIP
I have several questions regarding CPU performance monitoring of the BigIP.
1. What method should be invoked to get CPU utilization on the BigIP?
2. Can the STATISTIC_TM_TOTAL_CYCLES value of the get_global_statistics call be used to determine CPU utilization?
3. Currently when I invoke the get_global_statistics method, the value of STATISTIC_TM_TOTAL_CYCLES is zero. How can that be?
Thanks,
Steven Hotovy
CSG Systems, Inc.
- Loc_Pham_101863Historic F5 AccountAccording to the SDK documentation:
- Loc_Pham_101863Historic F5 AccountWe had already created an enhancement request (CR 47622) for host CPU statistic support, although it's too late to go into the next release. So it will likely be in the release after that, but unfortunately I can't foresee or tell you the exact date.
- Steven_Hotovy_8
Nimbostratus
I have run a sequence of get_global_statistics calls and have observed that the STATISTIC_TM_IDLE_CYCLES and STATISTIC_TM_TOTAL_CYCLES do not consistently increase. For example, 5 consecutive values for the STATISTIC_TM_IDLE_CYCLES variable, sampled every 30 seconds, are: - The statistics are 64-bit values and the numbers you are showing look like they are capped at 32-bits. SOAP encoding doesn't support 64-bit numbers natively so we use a structure of two 32-bit numbers and rely on the client application to use those values in whatever local 64-bit representation they can use.
struct ULong64 { long high; long low; }
$value = $Statistic->{"value"}; $low = $value->{"low"}; $high = $value->{"high"}; $value64 = ($high<<32)|$low;
UInt64 build64(VirtualServer.CommonULong64 value) { return ((ulong)value.high<<32)|(ulong)value.low; }
- Steven_Hotovy_8
Nimbostratus
I am already using that construct in my Perl code. Here is the pertinent snippet from the Perl which calls get_global_statistics: - That's odd. This still looks like you are printing out a 32bit number. Can you print out the low and high values as well as the calculated value64 to determine if perl is actually building a correct 64bit number.
- Steven_Hotovy_8
Nimbostratus
Here's the print statement I used to get the low and high values: - Loc_Pham_101863Historic F5 AccountThis shows that the value in $value64 is the same as the value of the low 32-bit, so the conversion didn't work correctly.
- Actually, they aren't exactly the same but as I suspected your version of perl is not compiled for 64 bit integer support. The values you are printing out are the 32bit equivalents of the expected values.
use Config; print "use64bitint: $Config{use64bitint}\n"; print "longsize: $Config{longsize}\n"; ($Config{use64bitint} eq 'define' || $Config{longsize} >= 😎 && print "quads\n";
- Steven_Hotovy_8
Nimbostratus
Joe,
Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects