How to make 150k active clients happy?

sthaug at nethelp.no sthaug at nethelp.no
Thu Jul 23 18:11:39 UTC 2009


> > I have to design a dhcp infrastructure which is good for:
> > ~ 150k active leases
> > ~ 2000 subnets, each a /22 network (1018 available IP's each)
> > - 4 days lease time
> > - failover is a must-have
> > - HP hardware running 64Bit debian lenny, 1 or 2 quad-core cpu, min. 4GB RAM) 
> > (Fast hardware ist not the problem ...)
> > 
> > And one 'special' requirement:
> > I have to forward agent-circuit.id, leased IP and client hardware address 
> > (mac) to a thrid party system on all events (commit|release|expiry) by 
> > issuing a http request.
> > Regarding this, I think of doing something like "execute('/usr/bin/wget 
> > http://1.2.3.4?ip=",param1<http://1.2.3.4?ip=>, param2, ....)"
> > 
> > So... what do you think? Is there a (good) chance to be successful with ISC 
> > 4.x? My feeling is that the  'execute()' call may turn out as showstopper. 
> > Any other ideas?
> 
> That's about 10x bigger than my client set, but you're right, it sounds doable.

150k active leases is about 50% larger than our client base here, but
your lease time is longer (we use one day) so you should get less than
half the number of requests that we have.

Regarding the hardware - as has been pointed out many times before, ISC
dhcpd is much more likely to be disk I/O constrained than memory/CPU
constrained. Worry about your disk susbsystem, your CPU specs are way
more than needed :-)

> I would make sure that the HTTP requests are uncoupled from the DHCP server's operation.  Instead of launching wget directly, do something else as cheaply as possible (eg. create a small file with the details of the transaction, rename when finished) and have another process watch for those and have it push them off with wget.

Totally agreed.

Steinar Haug, Nethelp consulting, sthaug at nethelp.no



More information about the dhcp-users mailing list