Was this article helpful?
@F5_Digger, great question! The way that the "class" command works in a datagroup is that it hashes the entire datagroup before it searches, so the number of entries in the datagroup doesn't affect the performance too terribly bad. That said, we've done some testing on performance using datagroups and here's some of the results:
Testing done using 10,000 CPS, 1 HTTP request per TCP connection.
Baseline: TCP + HTTP profile + Blank iRule (when RULE_INIT { } )
Baseline results: Total CPU % used = 23%; TMM CPU % used = 16%; TMM Mem (MB) = 254
Check using iRule that I used in the video against datagroup with 1,000 entries (and no match found, so the entire group is forced to be searched).
Results: Total CPU % used = 25%; TMM CPU % used = 18%; TMM Mem (MB) = 259
Check against datagroup with 2,000 entries (no match found).
Results: Total CPU % used = 25%; TMM CPU % used = 18%; TMM Mem (MB) = 261
Check against datagroup with 10,000 entries (no match found).
Results: Total CPU % used = 26%; TMM CPU % used = 18%; TMM Mem (MB) = 277
So, even with a datagroup with 10,000 entries, the performance hit is minimal compared to a straight baseline with a blank iRule. I hope this helps!