Timing is a command in iRules that triggers the system to track the number of cycles each event in an iRule consumes.  Deb has covered timing previously in iRules Optimization 101 #05 – Evaluating iRule Performance, so I took that and a presentation someone internally put together from that information and recorded a walkthrough on what makes timing tick.  (ba-dah, ching!)

I also took the opportunity to dust off my pycontrol skills and whipped up a script that will do some load testing against a virtual with your iRule applied, then download and crunch the stats specific to your platform cores/speeds so the numbers should be accurate. 

I uploaded the script to the iControl codeshare, titled pycontroliRuleTiming.  A sample of the output from the script is below:

jrahm@jrahm-dev:/var/tmp$ ./iRuleStats.py admin timing_test
Please enter your password:

Resetting Statistics for the timing_test iRule

Running load test to host
### Raw Data ###

### iRule timing_test Performance Results
        BIG-IP LTM 3600 has 3413568000 availabe CPU Cycles (2 cores, 2133.480 MHz)
        Average Cycles/sec:     134130
        CPU Utilization/req:    0.00392931970302 percent
        Max Requests/sec:       25449

Happy coding!

Related Articles