From b20fcd8a1388bbc22db1d43e4b222617829a2eda Mon Sep 17 00:00:00 2001
From: Mark Craig <mark.craig@forgerock.com>
Date: Tue, 24 May 2011 13:27:45 +0000
Subject: [PATCH] Fix OPENDJ-129: Consider adding manual pages for SDK tools, especially xxxrate tooles
---
opendj3/src/docbkx/dev-guide/man-modrate.xml | 327 +++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 296 insertions(+), 31 deletions(-)
diff --git a/opendj3/src/docbkx/dev-guide/man-modrate.xml b/opendj3/src/docbkx/dev-guide/man-modrate.xml
index 31ce7b4..26da551 100644
--- a/opendj3/src/docbkx/dev-guide/man-modrate.xml
+++ b/opendj3/src/docbkx/dev-guide/man-modrate.xml
@@ -32,75 +32,340 @@
xmlns:xinclude='http://www.w3.org/2001/XInclude'>
<refmeta>
<refentrytitle>modrate</refentrytitle><manvolnum>1</manvolnum>
+ <refmiscinfo class="software">OpenDJ</refmiscinfo>
+ <refmiscinfo class="version"><?eval ${project.version}?></refmiscinfo>
</refmeta>
<refnamediv>
<refname>modrate</refname>
- <refpurpose>TODO one-line description</refpurpose>
+ <refpurpose>measure modification throughput and response time</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>modrate</command>
- <command><replaceable>subcommand</replaceable></command>
- <arg choice="opt">--options</arg>
+ <arg choice="req">options</arg>
+ <group choice="opt" rep="repeat">
+ <arg>attribute</arg>
+ <arg>:</arg>
+ <arg>value format string</arg>
+ </group>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
- <para>TODO description.</para>
+ <para>This utility can be used to measure modify throughput and response time
+ of a directory service using user-defined modifications.</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, --asynchronous</option></term>
<listitem>
- <para>TODO Description.</para>
+ <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, --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>modrate</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 testing directory performance by
+ using the modrate command to write random 16-character description values
+ to all entries in a sample file.</para>
+ <screen width="80">$ grep ^uid: /path/to/Example.ldif | sed -e "s/uid: //" > names.txt
+$ modrate -p 1389 -D cn=directory\ manager -w secret12 \
+> -b "uid=%s,ou=people,dc=example,dc=com" -g "rand(names.txt)" \
+>"description:%s" -g "randStr(16)" -A -F -c 4 -t 4
+-----------------------------------------------------------------
+ Throughput Response Time
+ (ops/second) (milliseconds)
+recent average recent average 99.9% 99.99% 99.999% err/sec
+-----------------------------------------------------------------
+ 399.0 399.0 1.546 1.546 8.917 79.764 79.764 0.0
+ 541.6 470.5 1.109 1.294 8.917 181.808 181.808 0.0
+ 755.2 565.4 0.747 1.050 9.828 181.808 181.808 0.0
+ 786.9 620.8 0.718 0.945 10.175 114.424 181.808 0.0
+1209.3 738.3 0.469 0.789 8.917 114.424 181.808 0.0
+1255.8 824.5 0.474 0.709 8.365 79.764 181.808 0.0
+1359.1 900.8 0.430 0.649 7.610 72.218 181.808 0.0
+1294.5 950.0 0.463 0.618 7.589 81.093 181.808 0.0
+1280.0 986.6 0.471 0.596 7.533 81.093 204.701 0.0
+1301.9 1018.2 0.463 0.579 7.506 81.093 204.701 0.0
+^C</screen>
</refsect1>
</refentry>
--
Gitblit v1.10.0