mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Mark Craig
24.27.2011 b20fcd8a1388bbc22db1d43e4b222617829a2eda
opendj3/src/docbkx/dev-guide/man-searchrate.xml
@@ -32,75 +32,345 @@
 xmlns:xinclude='http://www.w3.org/2001/XInclude'>
 <refmeta>
  <refentrytitle>searchrate</refentrytitle><manvolnum>1</manvolnum>
  <refmiscinfo class="software">OpenDJ</refmiscinfo>
  <refmiscinfo class="version"><?eval ${project.version}?></refmiscinfo>
 </refmeta>
 <refnamediv>
  <refname>searchrate</refname>
  <refpurpose>TODO one-line description</refpurpose>
  <refpurpose>measure search throughput and response time</refpurpose>
 </refnamediv>
 <refsynopsisdiv>
  <cmdsynopsis>
   <command>searchrate</command>
   <command><replaceable>subcommand</replaceable></command>
   <arg choice="opt">--options</arg>
   <arg choice="req">options</arg>
   <arg choice="opt">filter format string</arg>
   <arg choice="opt" rep="repeat">attributes</arg>
  </cmdsynopsis>
 </refsynopsisdiv>
 <refsect1>
  <title>Description</title>
  <para>TODO description.</para>
  <para>This utility can be used to measure search throughput and response time
  of a directory service using user-defined searches.</para>
 </refsect1>
 <refsect1>
  <title>Global Options</title>
  <para>The following global options are supported.</para>
  <title>Options</title>
  <para>The following options are supported.</para>
  <variablelist>
   <varlistentry>
    <term><option>TODO</option></term>
    <term><option>-a, --dereferencePolicy {dereferencePolicy}</option></term>
    <listitem>
     <para>TODO Description.</para>
     <para>Alias dereference policy ('never', 'always', 'search', or 'find')</para>
     <para>Default value: never</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-A, --asynchronous</option></term>
    <listitem>
     <para>Use asynchronous mode and don't wait for results before sending the
     next request</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-b, --baseDN {baseDN}</option></term>
    <listitem>
     <para>Base DN format string</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-c, --numConnections {numConnections}</option></term>
    <listitem>
     <para>Number of connections</para>
     <para>Default value: 1</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-e, --percentile {percentile}</option></term>
    <listitem>
     <para>Calculate max response time for a percentile of operations</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-f, --keepConnectionsOpen</option></term>
    <listitem>
     <para>Keep connections open</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-F, --noRebind</option></term>
    <listitem>
     <para>Keep connections open and don't rebind</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-g, --argument {generator function or static string}</option></term>
    <listitem>
     <para>Argument used to evaluate the Java style format strings in program
     parameters (Base DN, Search Filter). The set of all arguments provided
     form the the argument list in order. Besides static string arguments, they
     can be generated per iteration with the following functions:</para>
    <variablelist>
     <varlistentry>
      <term>"inc({filename})"</term>
      <listitem><para>Consecutive, incremental line from file</para></listitem>
     </varlistentry>
     <varlistentry>
      <term>"inc({min},{max})"</term>
      <listitem><para>Consecutive, incremental number</para></listitem>
     </varlistentry>
     <varlistentry>
      <term>"rand({filename})"</term>
      <listitem><para>Random line from file</para></listitem>
     </varlistentry>
     <varlistentry>
      <term>"rand({min},{max})"</term>
      <listitem><para>Random number</para></listitem>
     </varlistentry>
     <varlistentry>
      <term>"randStr({length},<replaceable>charSet</replaceable>)"</term>
      <listitem><para>Random string of specified length and optionally from
      characters in the charSet string. A range of character can be specified
      with [start-end] charSet notation. If no charSet is specified,
      the default charSet of [A-Z][a-z][0-9] will be used.</para></listitem>
     </varlistentry>
    </variablelist>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-i, --statInterval {statInterval}</option></term>
    <listitem>
     <para>Display results each specified number of seconds</para>
     <para>Default value: 5</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-m, --maxIterations {maxIterations}</option></term>
    <listitem>
     <para>Max iterations, 0 for unlimited</para>
     <para>Default value: 0</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-M, --targetThroughput {targetThroughput}</option></term>
    <listitem>
     <para>Target average throughput to achieve</para>
     <para>Default value: 0</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-s, --searchScope {searchScope}</option></term>
    <listitem>
     <para>Search scope ('base', 'one', 'sub', or 'subordinate')</para>
     <para>Default value: sub</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-S, --scriptFriendly</option></term>
    <listitem>
     <para>Use script-friendly mode</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-t, --numConcurrentTasks {numConcurrentTasks}</option></term>
    <listitem>
     <para>Number of concurrent tasks per connection</para>
     <para>Default value: 1</para>
    </listitem>
   </varlistentry>
  </variablelist>
 </refsect1>
 <refsect1>
  <title>Subcommands</title>
  <para>The following subcommands are supported.</para>
  <refsect2>
   <para>TODO Description.</para>
   <cmdsynopsis>
    <command>searchrate</command>
    <command>TODO</command>
    <arg choice="opt">--options</arg>
   </cmdsynopsis>
   <title>LDAP Connection Options</title>
   <variablelist>
    <varlistentry>
     <term><option>TODO</option></term>
     <term><option>-D, --bindDN {bindDN}</option></term>
     <listitem>
      <para>TODO description.</para>
      <para>DN to use to bind to the server</para>
      <para>Default value: cn=Directory Manager</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-E, --reportAuthzID</option></term>
     <listitem>
      <para>Use the authorization identity control</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-h, --hostname {host}</option></term>
     <listitem>
      <para>Directory server hostname or IP address</para>
      <para>Default value: localhost.localdomain</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-j, --bindPasswordFile {bindPasswordFile}</option></term>
     <listitem>
      <para>Bind password file</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-K, --keyStorePath {keyStorePath}</option></term>
     <listitem>
      <para> Certificate key store path</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-N, --certNickname {nickname}</option></term>
     <listitem>
      <para>Nickname of certificate for SSL client authentication</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-o, --saslOption {name=value}</option></term>
     <listitem>
      <para>SASL bind options</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-p, --port {port}</option></term>
     <listitem>
      <para>Directory server port number</para>
      <para>Default value: 389</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-P, --trustStorePath {trustStorePath}</option></term>
     <listitem>
      <para>Certificate trust store path</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-q, --useStartTLS</option></term>
     <listitem>
      <para>Use StartTLS to secure communication with the server</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-T, --trustStorePassword {trustStorePassword}</option></term>
     <listitem>
      <para>Certificate trust store PIN</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-u, --keyStorePasswordFile {keyStorePasswordFile}</option></term>
     <listitem>
      <para>Certificate key store PIN file</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-U, --trustStorePasswordFile {path}</option></term>
     <listitem>
      <para>Certificate trust store PIN file</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>--usePasswordPolicyControl</option></term>
     <listitem>
      <para>Use the password policy request control</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-w, --bindPassword {bindPassword}</option></term>
     <listitem>
      <para>Password to use to bind to the server</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-W, --keyStorePassword {keyStorePassword}</option></term>
     <listitem>
      <para>Certificate key store PIN</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-X, --trustAll</option></term>
     <listitem>
      <para>Trust all server SSL certificates</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-Z, --useSSL</option></term>
     <listitem>
      <para>Use SSL for secure communication with the server</para>
     </listitem>
    </varlistentry>
   </variablelist>
  </refsect2>
  <refsect2>
   <title>Utility Input/Output Options</title>
   <variablelist>
    <varlistentry>
     <term><option>--noPropertiesFile</option></term>
     <listitem>
      <para>No properties file will be used to get default command line
      argument values</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>--propertiesFilePath {propertiesFilePath}</option></term>
     <listitem>
      <para>Path to the file containing default property values used for
      command line arguments</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-v, --verbose</option></term>
     <listitem>
      <para>Use verbose mode</para>
     </listitem>
    </varlistentry>
   </variablelist>
  </refsect2>
  <refsect2>
   <title>General Options</title>
   <variablelist>
    <varlistentry>
     <term><option>-V, --version</option></term>
     <listitem>
      <para>Display version information</para>
     </listitem>
    </varlistentry>
     <varlistentry>
     <term><option>-?, -H, --help</option></term>
     <listitem>
      <para>Display usage information</para>
     </listitem>
    </varlistentry>
   </variablelist>
  </refsect2>
 </refsect1>
 <refsect1>
  <title>Files</title>
  <para>TODO if command has configuration file.</para>
 </refsect1>
 <refsect1>
  <title>Environment</title>
  <para>TODO if command reads environment variables.</para>
 </refsect1>
 <refsect1>
  <title>Exit Codes</title>
   <variablelist>
    <varlistentry>
     <term>TODO exit code</term>
     <term>0</term>
     <listitem>
      <para>TODO description.</para>
      <para>The command completed successfully.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term>89</term>
     <listitem>
      <para>An error occurred while parsing the command-line arguments.</para>
     </listitem>
    </varlistentry>
   </variablelist>
 </refsect1>
 <refsect1>
  <title>Examples</title>
  <para>TODO</para>
  <para>The following example demonstrates measuring search performance.</para>
  <screen width="80">$ grep ^uid: /path/to/Example.ldif | sed -e "s/uid: //" &gt; names.txt
$ searchrate -p 1389 -b dc=example,dc=com \
&gt; -g "rand(names.txt)" "(uid=%s)" -A -F -c 4 -t 4
-------------------------------------------------------------------------------
     Throughput                            Response Time
   (ops/second)                           (milliseconds)
recent  average  recent  average  99.9%  99.99%  99.999%  err/sec  Entries/Srch
-------------------------------------------------------------------------------
1475.9   1475.9   0.423    0.423  6.938  126.236 126.236      0.0           1.0
2596.5   2038.4   0.254    0.315  6.866  12.980  126.236      0.0           1.0
3210.7   2428.2   0.205    0.267  5.733  11.710  126.236      0.0           1.0
3080.5   2591.0   0.215    0.252  5.733  10.541  126.236      0.0           1.0
3236.9   2720.1   0.203    0.240  5.258  10.514  126.236      0.0           1.0
3181.1   2796.8   0.207    0.234  5.258  10.384  126.236      0.0           1.0
3202.5   2854.8   0.206    0.229  4.825  10.384  126.236      0.0           1.0
^C</screen>
 </refsect1>
</refentry>