#305 closed task (fixed)

benchmark mutable-file creation speeds with different RSA keysizes

Reported by: warner Owned by:
Priority: minor Milestone: 1.1.0
Component: code-mutable Version: 0.7.0
Keywords: mutable Cc:
Launchpad Bug:

Description

Now that we have a speed-testing framework that can measure mutable-file creation time, I'd like to experiment with different key sizes and see how it affects things.

We're currently using 2048-bit primes in our RSA keys, and mutable file generation appears to take 0.8 to 3.2 seconds on my causal tests. The automated test we have graphed at http://allmydata.org/tahoe-figleaf-graph/hanford.allmydata.com-tahoe_speedstats_SSK_creation.html shows my home machine taking an average of 3.8 seconds per file, and the machines in colo taking an average of 2.0 seconds per file.

I'd like to see what 1024 bit keys are like, as well as 4096. I'd like to know about 512-bit keys too, not because I'd ever consider using them, but because I want to know how much time is spent outside of key generation.

This will be obviated by moving to DSA-based mutable files (#217), but the information would still be valuable.

Change History (2)

comment:1 Changed at 2008-02-14T00:46:15Z by warner

For the same speedtest-colo setup that we use on the buildbot (two trials each):

  • 2048 bit keys (default)
    • create per-file time SSK: 1.772s/2.806s
    • upload per-file: 184ms/185ms
    • download per-file: 43ms/44ms
  • 1024 bit keys
    • create 236ms/235ms
    • upload 121ms/122ms
    • download 23ms/22ms
  • 522 bit keys (pycryptopp enforces this as a minimum)
    • create 152ms/142ms
    • upload 119ms/123ms
    • download 23ms/23ms

For the speedtest-DSL setup:

  • 2048 bit keys:
    • create: 3.317s/3.117s
    • upload: 338ms/327ms
    • download: 71ms/69ms
  • 1024 bit keys:
    • create: 402ms/451ms
    • upload: 219ms/220ms
    • download: 41ms/42ms
  • 522 bit keys:
    • create: 262ms/279ms
    • upload: 210ms/212ms
    • download: 41ms/41ms

What's interesting about this?

  • smaller keys require less work, duh
  • creation time is dominated by RSA key generation, about a 10x-20x difference between 522-bit and 2048-bit.
  • upload per-file time is somewhat faster with smaller keys, about a 1.5x difference. The two effects I can think of are:
    • signing with smaller keys takes less time
    • pushing smaller pubkeys/sigs/encprivkeys takes less time
  • download per-file time is marginally faster with smaller keys, about a 2x difference between 522-bit and 2048-bit.
    • verifying with a smaller key takes less time

comment:2 Changed at 2008-04-24T23:45:26Z by warner

  • Component changed from code-encoding to code-mutable
  • Milestone changed from undecided to 1.1.0
  • Resolution set to fixed
  • Status changed from new to closed

done.

Note: See TracTickets for help on using tickets.