KDC worker processes project

Nicolas Williams Nicolas.Williams at oracle.com
Thu Sep 16 17:51:07 EDT 2010


On Thu, Sep 16, 2010 at 05:06:01PM -0400, Greg Hudson wrote:
> On Thu, 2010-09-16 at 15:56 -0400, Nicolas Williams wrote:
> > Why can't you test by starting the KDC and then confirming that all the
> > expected processes exist, with the right parent/child hierarchy?
> 
> I hadn't thought about that sort of test; I was thinking more along the
> lines of ensuring that both worker processes could accept UDP packets
> and TCP connections in parallel.

You could use debug messages to test the TCP case fairly easily: have N
processes/threads connect()-but-write-nothing to the KDC's TCP port,
then check that more than one KDC process wrote a debug message about
accepting connections.

But yes, I agree, this appears to be best unit tested.

> Examining the process table is kind of a portability minefield, isn't
> it?

You could just have the KDC processes write debug messages about it.

> > How will the number of processes be configured?  What's the default?
> > (Twice the number of CPUs seems like a reasonable default to me.)
> 
> With the -w command line option to krb5kdc.  Getting it from the profile
> wouldn't be too difficult if that's important.

Seems desirable.

> The default is not to use worker processes.  If you don't have KDC load
> issues and anything goes wrong, you're going to have an easier time
> diagnosing it if the KDC didn't aggressively parallelize in order to
> take advantage of system resources.

KDCs are typically run on systems dedicated for that purpose.
Aggressively using available CPU resources seems like a very desirable
default.  Though you might want to be more conservative than I was (say,
the number of CPUs minus 1).

Nico
-- 



More information about the krbdev mailing list