BIND 10 #1264: Design document for DHCP benchmarking utility

BIND 10 Development do-not-reply at isc.org
Fri Oct 21 12:36:52 UTC 2011


#1264: Design document for DHCP benchmarking utility
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:  johnd
  stephen                            |                Status:  reviewing
                       Type:  task   |             Milestone:  Sprint-
                   Priority:  major  |  DHCP-20111026
                  Component:  dhcp   |            Resolution:
                   Keywords:         |             Sensitive:  0
            Defect Severity:  N/A    |           Sub-Project:  DHCP
Feature Depending on Ticket:         |  Estimated Difficulty:  0
        Add Hours to Ticket:  0      |           Total Hours:  0
                  Internal?:  0      |
-------------------------------------+-------------------------------------

Comment (by tomek):

 Replying to [comment:7 stephen]:
 > Replying to [ticket:1263#comment:2 tomek]
 >
 > > I have couple of comments.
 > Hmm... this is a definition of "couple" of which I was previously
 unaware :-)
 I planed this comment to be short, but it kind of got carried away.

 > > Regarding the -r option, it is useful, but it is not enough.
 > > :
 > > To meet those usages, -time (or -t) option should be added that
 specifies duration...
 > Agreed.  Since r * t = n, the command parser should accept any two and
 calculate the third (objecting if all three are given).  I would suggest
 that the default for r be something
 No necessarily object. In stability or stress testing, these can be
 considered exit criteria. Tool should conclude test whichever comes first.
 "Try to get 1 million leases, but I don't want this test to last longer
 than 1 hour" is a valid test scenario.

 like 10/second; if neither t nor n is specified, assume a value of n equal
 to a 2^32^ - 1, i.e. essentially unlimited.
 >
 > (As an aside, allowing very large values for n complicates the mapping
 of packet ID to information about the exchange as a simple pre-allocated
 array cannot be used.  However some form of double-buffer - where a buffer
 can be reused once a the time equal to (time last packet using this buffer
 was sent + packet drop time) has passed - should work.)
 We may ignore this aspect for our first release, but this tool should have
 reasonable memory requirements. When used in stability test (e.g. hammer
 our server over a weekend), it should not take much more memory than
 during relatively short test. Some form of sliding window should be used.

 > > Besides of using dhcperf as manual tool, it will also be used as
 automated test. In that case it should have clearly state if specified
 pass criteria are met or not. Something that could be easily parsed by
 automated environments.
 > >
 > > Make sure that return code will specify status.
 > This sounds useful, although I'm not clear what you mean here.  In any
 case, I think it is something that can be added later.  Could you raise a
 ticket for it?
 I believe there is no ticket necessary. That is really simple. dhcperf
 should print out TEST PASSED or TEST FAILED as one of the last line. That
 will be easy to parse by a script or execution environment of some sort.

 Note that just giving PASS/FAIL status without explanation is not enough.
 If test fails, it should explain why. For example "Maximum allowed dropped
 packets:1 actually dropped: 5". That is another suggestion from
 experience. In time, we will use this tool to run many different test
 scenarios in automated environment somewhat similar to our build bot. When
 we spot that test failed, the first question will always be "why?". Having
 the ability to just scroll down the log file and get first rough idea
 about what went wrong is very useful.

 > for now, as suggested above, the return code should be 1 if any packets
 were dropped.
 Sounds good.

 > See above when the "-o" option is specified.  Do you think there is a
 need to echo them if used interactively, at a terminal?
 Yes. People often redirect terminal output to a file. Or even copy-paste
 from terminal if something breaks. Printing out a single line does not
 make the log much bigger, and it will spare us troubles.

-- 
Ticket URL: <http://bind10.isc.org/ticket/1264#comment:9>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list