Skip to content

Load Testing Findings

Chris O'Haver edited this page Mar 27, 2019 · 13 revisions

Test: Fill caches to capacity

Focus: RRL table memory usage. This test uses a very large RRL table, and fills it to capacity without causing evictions.

             %CPU   RSIZE     QPS   Latency    rrl version
cache only    621  39620K  103356  0.000960    -

cache + rrl   722  68768K   99834  0.000994    19459eb
             +16%    +74%     -3%       +4%

cache + rrl   702  63728K   96958  0.001024    2f2a2a0
             +13%    +61%     -6%       +7%
Notes:
  cache and rrl table size both = 100000
  100000 distinct queries sent 50 times
  erratic (drop 0) used to create records
  No rate limiting occurs during the test (0 packet loss).

  client packet.io c2.medium.x86 dnsperf
  server packet.io c2.medium.x86 coredns 1.4.0 + rrl 

Test: Limited Table Space (high rate of eviction)

Focus: Eviction. This test uses a smaller RRL table, to test eviction performance.

             %CPU   RSIZE     QPS   Latency   rrl ver   rrl eviction
cache only    525  39968K  104857  0.000945   -         -

cache + rrl   674  40408K  102575  0.000967   b1acdf7   safe (non-random)
             +28%    +1%     -2%       +2%

cache + rrl   665  41500K  101896  0.000973   b1acdf7   unsafe (random)
             +27%    +1%     -2%       +2%

cache + rrl   649  39668K   99998  0.000992   2f2a2a0   safe (non-random)
             +24%    +1%     -5%       +5%

When comparing safe vs unsafe/random evictions methods, 
there is not a significant performance difference.

Notes:
  cache and rrl table size both = 1000
  100000 distinct queries sent 50 times
  erratic (drop 0) used to create records
  No rate limiting occurs during the test (0 packet loss).

  client packet.io c2.medium.x86 dnsperf
  server packet.io c2.medium.x86 coredns 1.4.0 + rrl
Clone this wiki locally