[1374] in Kerberos_V5_Development
Re: "benchmark" numbers not so bad after all
daemon@ATHENA.MIT.EDU (Ken Raeburn)
Wed Jul 3 11:43:27 1996
To: krbdev@MIT.EDU
Cc: kerberos-dev@cygnus.com
From: Ken Raeburn <raeburn@cygnus.com>
Date: 03 Jul 1996 11:42:34 -0400
In-Reply-To: Ken Raeburn's message of Wed, 3 Jul 1996 02:38:02 -0400
Okay, here are my revised numbers.
I used 7 processes started almost simultaneously (via fork) talking to
one KDC for 120 seconds. I did this in parallel on three machines
(100MHz Alpha OSF/1 3.2; 2x 166MHz Pentium Linux), starting the jobs
by hand, but I'm pretty confident they all got started within 1sec
each time. Still, there could be some error in the numbers due to
that...
Each communicating process follows a loop where it makes an AS_REQ
followed by 250 TGS_REQs with differing service principals. The list
of service principals encompasses almost all of our database, and is
sorted alphabetically, which should eliminate any obvious relationship
to the on-disk order. The job started on each machine randomly
chooses a point in the list at which to start; each process started by
a job starts at intervals of 250/7 from its siblings. So the accesses
to the database should be pretty random. The database is stored using
standard SunOS dbm.
The server is an Axil 311 (Sparc clone) running SunOS 4.1.4, with a
SCSI disk (not sure what type) containing the kdc binary and database.
I'm afraid I don't know the clock speed.
I'm not aware of any other significant load on the network or this
server during my tests, but I didn't really check for them.
And I never looked at the size of the replay cache before I started.
Anyways, here are my request/second counts, and, for the
reciprocal-impaired, average msec per request:
original code: 23.6 42.3
[now includes asn1buf_expand fix similar to Ezra's]
disable replay cache: 51.1 19.5
disable lookaside: 74.0 13.5
Some ASN.1 changes knock off about another 10% of that:
time-cvt cache: 78.0 12.8
[not thread-safe]
time-cvt no sprintf: 80.2 12.4
asn1 calloc->malloc: 80.5 12.4
[bugfix, sorta -- calloc just wasn't needed]
asn1buf non-gcc macros: 81.2 12.3
asn1buf gcc macro: 82.3 12.1
[these two will matter more on machines with more
expensive function calls]
Ken