Browse Source

[2040] Minor tweaks in DHCP Performance Guide

Tomek Mrugalski 12 years ago
parent
commit
e71bb8822a

+ 10 - 0
tests/tools/dhcp-ubench/README

@@ -0,0 +1,10 @@
+
+ This directory contains benchmarks for various planned and considered database
+ backends for BIND10 DHCP, codename Kea.
+
+ Before using the code, please read DHCP Performance Guide, available in
+ HTML and PDF formats.
+
+ To compile the code, type: make
+
+ To regenerate documentation, type: make doc

File diff suppressed because it is too large
+ 31 - 9
tests/tools/dhcp-ubench/dhcp-perf-guide.html


+ 34 - 3
tests/tools/dhcp-ubench/dhcp-perf-guide.xml

@@ -115,6 +115,9 @@
       Therefore each test uses lease4 table for performance measurements.
       </para>
 
+      <para>All benchmarks are implemented as single threaded applications
+      that take advantage of a single database connection.</para>
+
       <para>
         Those benchmarks are stored in tests/tools/dhcp-ubench
         directory. This directory contains simplified prototypes for
@@ -339,7 +342,7 @@ SQLite version: 3.7.9sourceid version is 2011-11-01 00:52:41 c7c6050ef060877ebe7
       100000 (hundred thousand) repetitions.</para>
 
       <!-- raw results sync -->
-      <table><title>Synchronous results:</title>
+      <table><title>Synchronous results</title>
       <tgroup cols='6' align='center' colsep='1' rowsep='1'>
         <colspec colname='Backend'/>
         <colspec colname='Num' />
@@ -399,7 +402,7 @@ SQLite version: 3.7.9sourceid version is 2011-11-01 00:52:41 c7c6050ef060877ebe7
       was run for 1 million repetitions due to much larger performance.</para>
 
       <!-- raw results async -->
-      <table><title>Asynchronous results:</title>
+      <table><title>Asynchronous results</title>
       <tgroup cols='6' align='center' colsep='1' rowsep='1'>
         <colspec colname='Backend'/>
         <colspec colname='Num' />
@@ -454,7 +457,10 @@ SQLite version: 3.7.9sourceid version is 2011-11-01 00:52:41 c7c6050ef060877ebe7
       </tgroup>
       </table>
 
-      <para>Estimated performance:</para>
+      <para>Presented performance results can be computed into operations per second metrics.
+      It should be noted that due to large differences between various operations (sometime
+      over 3 orders of magnitude), it is not possible to create a simple, readable chart with
+      that data.</para>
 
       <table><title>Estimated performance</title>
       <tgroup cols='6' align='center' colsep='1' rowsep='1'>
@@ -536,6 +542,31 @@ SQLite version: 3.7.9sourceid version is 2011-11-01 00:52:41 c7c6050ef060877ebe7
 
     </section>
 
+    <section>
+      <title>Possible further optimizations</title>
+      <para>
+        For debugging purposes the code was compiled with -g -O0
+        flags. While majority of the time was spent in backend
+        functions (that was probably compiled with -O2 flags), the
+        benchmark code could perform faster, when compiled with -O2,
+        rather than -O0. That is expected to affect memfile benchmark.
+      </para>
+      <para>
+        Currently all operations were conducted on one by one
+        basis. Each operation was treated as a separate
+        transaction. Grouping X operations together will potentially
+        bring almost X fold increase in synchronous operations.
+        Extension for this benchmark in this regard should be considered.
+        That affects only write operations (insert, update and delete). Read
+        operations (search) are expected to be barely affected.
+      </para>
+      <para>
+        Multi-threaded or multi-process benchmark may be considered in
+        the future. It may be somewhat difficult as only some backends
+        support concurrent access.
+      </para>
+    </section>
+
   </chapter>
 
   <chapter id="perfdhcp">

BIN
tests/tools/dhcp-ubench/performance-results.ods