<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<META http-equiv=Content-Type content=text/html;charset=UTF-8>
<META content="MSHTML 6.00.2800.1605" name=GENERATOR></HEAD>
<BODY text=#000000 bgColor=#ffffff>
<DIV><SPAN class=691144016-11022008><FONT face=Arial color=#0000ff size=2>in the 
case I reported, the clients were entirely within a single enterprise, and while 
it was certainly possible for NICs to be replaced from time to time, the client 
population was remarkably stable.  For us, a 7 day or even 31 day lease 
would have been appropriate.  Our users were instructed to shut down the 
clients every day at close of business, then to restart them the following 
business day, so we effectively had 100% of the clients doing an INIT-REBOOT at 
least once each business day, with well over 90% rebooting at 8:00 AM -- talk 
about a spike in network traffic!  Over time, with changing workload 
requirements, expansion of working shifts, and the realization that 
considerable time could be saved at the beginning of each shift (not 
just mornings any longer) by utilizing sleep mode for power saving, 
the in-rush of init-reboot requests dropped significantly.</FONT></SPAN></DIV>
<DIV><SPAN class=691144016-11022008><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=691144016-11022008><FONT face=Arial color=#0000ff size=2>There 
is one last point I forgot to mention in my previous response...  our 
modification of the ISC server updated the leases file for each and every 
message processed that modified the lease.  Our server was based on version 
2, so there were no DNS updates as part of the lease assignment and renewal 
<DIV><SPAN class=691144016-11022008><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN> </DIV>
<DIV><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN 
class=691144016-11022008>Basically, the more volatile your client population, 
the shorter the lease time should be, though that is not an absolute.  
Consider operational hours, predictions of network traffic, number of 
routers/relay agents and their placement, and typical use patterns of the 
clients before deciding.</SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN 
class=691144016-11022008></SPAN></FONT></FONT></FONT> </DIV>
<DIV><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN 
class=691144016-11022008>I've never been a fan of permitting only known MAC 
addresses, as the daily maintenance of the server configuration in very large 
environments is a major pain, and what of NIC replacement without prior 
notice?  Just a few of my biases based on experience with programmable 
NICs, frequent moves, adds, and changes, and cheaply made NICs with high failure 
<DIV><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN 
class=691144016-11022008></SPAN></FONT></FONT></FONT> </DIV>
<DIV><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN 
class=691144016-11022008>--Barr Hibbs</SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN 
class=691144016-11022008></SPAN></FONT></FONT></FONT> </DIV>
<DIV><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN 
class=691144016-11022008></SPAN></FONT></FONT></FONT> </DIV>
<DIV><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN 
class=691144016-11022008> </SPAN></FONT></FONT></FONT><FONT face=Tahoma 
size=2>-----Original Message-----<BR><B>From:</B> dhcp-users-bounce@isc.org 
[mailto:dhcp-users-bounce@isc.org]<B>On Behalf Of </B>Blake 
Hudson<BR><B>Sent:</B> Monday, February 11, 2008 07:51<BR><B>To:</B> 
dhcp-users@isc.org<BR><B>Subject:</B> Re: Watching performance on a DHCP 
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid">Thanks 
  Barr, it is always interesting to hear relative practical experiences. This is 
  exactly the kind of problem I would like to prepare/plan for. I've read that 
  Microsoft defaults to an 8 day lease time. ISC uses a default lease time of 10 
  minutes, with a max of 2 hours in their sample config included with 
  4.1.x.<BR><BR>We have successfully used 1 day leases in the past. Though I 
  know some larger ISPs use 5 day, 7 day or even longer lease times.<BR><BR>I'm 
  assuming that the main advantage to a short lease time is that hosts that join 
  and leave a network give their leases up more rapidly (keeping IP pool usage 
  as low as possible). The main advantage to longer lease times being load on 
  the DHCP server. If I have a relatively stable network (only known macs are 
  allowed) then it seems like a longer lease time (say 7-14 days) is more 
  appropriate. And on a relatively stable cable or DSL network anything between 
  5-7 days seems acceptable? Volatile networks (wifi hotspots?) would probably 
  benefit from a 1 hour or shorter lease time.<BR><BR>Does it sound like I am in 
  the right ballpark with these figures?<BR><BR>-Blake<BR><BR><BR>-------- 
  Original Message  --------<BR>Subject: Re: Watching performance on a DHCP 
  Server<BR>From: Barr Hibbs <A class=moz-txt-link-rfc2396E 
  href="mailto:rbhibbs@pacbell.net"><rbhibbs@pacbell.net></A><BR>To: <A 
  href="mailto:dhcp-users@isc.org">dhcp-users@isc.org</A><BR>Date: Sunday, 
  February 10, 2008 4:35:37 PM<BR>
  type="cite"><PRE wrap="">this experience is with a derivative of version 2 of the
server, but as the basic functionality has not changed
significantly for IPv4, it may be instructive....

at the time, our environment had about 12,000 clients split
roughly 55/45 between two servers...  each server was
connected by two links to each of approximately 120 remote
subnets, each link diversely routed to minimize disruption
due to network problems, but also delivering 2 copies of
every client message to the servers

we suffered a massive regional power failure that lasted
2-1/2 days before complete restoration...  our clients
received 7-day leases, largely grouped with their renewal
times between 8 am and 6 pm, so in a 2-1/2 day outage, we
could expect renewal requests to come from about half of our
clients, and certainly init-reboot requests to come from
all...  so, that is roughly 18,000 requests to be serviced
as power is restored....

of course, the power restoral didn't occur all at once, but
was somewhat randomly distributed over a period of roughly
32 hours

entirely by coincidence, we had instrumented the server to
capture detailed message arrival rates and response times,
expecting a normal, boring weekend...  but then the power
failed, and...  we got lots more data than we expected!

the real-time clock on our computers was capable of only 1
millisecond resolution, so I must extrapolate....  our
servers survived a nearly CONTINUOUS load of more than 1,000
requests per second for 32 hours...

of course, your mileage may vary, but by choosing an
appropriate lease lifetime, you will probably see similar or
better performance.

--Barr Hibbs

    <BLOCKQUOTE type="cite"><PRE wrap="">-----Original Message-----
From: <A class=moz-txt-link-abbreviated href="mailto:dhcp-users-bounce@isc.org">dhcp-users-bounce@isc.org</A>
[<A class=moz-txt-link-freetext href="mailto:dhcp-users-bounce@isc.org">mailto:dhcp-users-bounce@isc.org</A>]On
Behalf Of David W. Hankins
Sent: Friday, February 08, 2008 08:55
To: <A class=moz-txt-link-abbreviated href="mailto:dhcp-users@isc.org">dhcp-users@isc.org</A>
Subject: Re: Watching performance on a DHCP Server

On Thu, Feb 07, 2008 at 06:07:51PM -0600, Blake
Hudson wrote:
      <BLOCKQUOTE type="cite"><PRE wrap="">By default in my distribution the leases file
      </PRE></BLOCKQUOTE><PRE wrap="">is stored in
      <BLOCKQUOTE type="cite"><PRE wrap="">/var/lib/dhcpd/dhcpd.leases. This happens to be
      </PRE></BLOCKQUOTE><PRE wrap="">on a RAID1 array with
      <BLOCKQUOTE type="cite"><PRE wrap="">15k scsi disks and iostat shows the array as
      </PRE></BLOCKQUOTE><PRE wrap="">being maxed out once it
      <BLOCKQUOTE type="cite"><PRE wrap="">reaches ~ 300 I/O's per second. DHCP logging is
      </PRE></BLOCKQUOTE><PRE wrap="">done asynchronously to
      <BLOCKQUOTE type="cite"><PRE wrap="">the same array (which normally experiences ~ 50
      </PRE></BLOCKQUOTE><PRE wrap="">I/O ops). With CPU and
      <BLOCKQUOTE type="cite"><PRE wrap="">memory barely breaking a sweat, this leads me
      </PRE></BLOCKQUOTE><PRE wrap="">to believe that the
      <BLOCKQUOTE type="cite"><PRE wrap="">limitation is with the disks (lots of tiny writes).

I could move the leases file to a different
      </PRE></BLOCKQUOTE><PRE wrap="">array, or to tmpfs, but
      <BLOCKQUOTE type="cite"><PRE wrap="">before I do I just want to know if these
      </PRE></BLOCKQUOTE><PRE wrap="">results are typical and that I
      <BLOCKQUOTE type="cite"><PRE wrap="">have interpreted the test data correctly and
      </PRE></BLOCKQUOTE><PRE wrap="">made the correct
      <BLOCKQUOTE type="cite"><PRE wrap="">determination as to the bottleneck.
      </PRE></BLOCKQUOTE><PRE wrap="">those results are typical for that kind of
hardware, and you have
interpreted the test data correctly: fsync() is
the biggest

in 4.1.0a1, you will find a feature, however,
which was provided to
us in a patch by Christof Chen.  it permits the
server to queue
multiple ACKs behind a single fsync(); default 28
(576 byte DHCP
packets filling default socket buffer send
sizes).  the burst of acks
are sent presently if the sockets go dry, and
shortly will be backed
up with a sub-second timeout.

it has some bugs we're working on, particularly
with failover, but
we'll address those in alpha.

you may find that it provides some form of
multiplicative benefit to
your performance stats, since fsync() is the
bottleneck, and now there
are 28 acks per fsync max.

so if you are only pushing 50 requests/s
currently, you may live
comfortably in a 250 request/s buffer for some
months until the
4.1.x code is stable?

      <BLOCKQUOTE type="cite"><PRE wrap="">Also, I would appreciate any anecdotal evidence
      </PRE></BLOCKQUOTE><PRE wrap="">with regards to how many
      <BLOCKQUOTE type="cite"><PRE wrap="">requests are typical in a large network under
      </PRE></BLOCKQUOTE><PRE wrap="">normal (or abnormal)
      <BLOCKQUOTE type="cite"><PRE wrap="">conditions. If 10,000 users all of a sudden
      </PRE></BLOCKQUOTE><PRE wrap="">came online, how many
      <BLOCKQUOTE type="cite"><PRE wrap="">requests would they really generate per second?
      </PRE></BLOCKQUOTE><PRE wrap="">there have been a few folks who suffered mass
power outages, i don't
know what search query to use, but you can find
them on the old
dhcp-server mailing list.  they did not report
problems, rather the
surprise at the lack of problem.

Ash bugud-gul durbatuluk agh burzum-ishi krimpatul.
Why settle for the lesser evil?
    </PRE></BLOCKQUOTE><PRE wrap=""><!----><A class=moz-txt-link-freetext href="https://secure.isc.org/store/t-shirt/">https://secure.isc.org/store/t-shirt/</A>
David W. Hankins        "If you don't do it right the first time,
Software Engineer                    you'll just have to do it again."
Internet Systems Consortium, Inc.               -- Jack T. Hankins