National Center for Supercomputing Applications MyProxy Credential Management Service University of Illinois at Urbana-Champaign

[Valid HTML 4.01]
[Valid CSS]
[Valid Atom 1.0]

(OSI Certified)

MyProxy Scalability Information

Starting in the MyProxy v0.6.5 release, the myproxy-test command includes a -performance option for performance testing.

In our tests, the myproxy-server gives stable performance until the listen(2) queue (128 entries in Linux) fills up. The myproxy-server accepts each connection, immediately forks a handler, then accepts another connection, so it drains the listen(2) queue efficiently, but if there are enough simultaneous connection attempts, the operating system will start refusing connections until the myproxy-server frees up another entry in the listen(2) queue. The myproxy-server does not crash under heavy load; the operating system simply refuses connections until the myproxy-server is ready to handle another one.

The primary myproxy-server process runs in under 10MB RAM, with approximately 600KB RAM needed for each child process, so the myproxy-server can comfortably serve 128 simultaneous connections using under 100MB RAM.

As an example, running both server and clients on a 3 GHz Pentium 4, we get stable performance of:

6 myproxy-inits per second
one keygen on client-side, one keygen on server-side
10 myproxy-get-delegations per second
one keygen on client-side
17 myproxy-change-pass-phrases per second
key decrypt/encrypt on server-side
22 myproxy-infos per second
the simplest myproxy command

For example, with 100 simultaneous clients, doing 20 operations each, we get:

  • 2000 myproxy-inits in 334 seconds.
  • 2000 myproxy-get-delegations in 198 seconds.
  • 2000 myproxy-change-pass-phrases in 119 seconds.
  • 2000 myproxy-infos in 91 seconds.

In our experience, the CPU is the bottleneck doing key generations and key decryption/encryption. Note that for the numbers above, we're running both clients and server on the same machine; server throughput would be better if the clients were running elsewhere. Note also that for the most common operation, myproxy-get-delegation, the CPU-intensive key generation happens on the client-side, so server-side scalability for that operation is much better than reported above.

Also, in our tests, the MyProxy repository scales well to over 100,000 credentials. Disk space required per credential is typically under 10KB, though credential sizes can vary depending on key sizes and certificate extensions. 1GB available disk space is more than enough for typical myproxy-server installations.

We'll update this page with more information as we perform more tests. If you're having scalability problems, please report them.

Last modified 08/20/08.
©2000-2019 Board of Trustees of the University of Illinois.