Deploy to GitHub pages
[awesomized/libmemcached] / bin / memaslap.html
index 17165fb7a2f9b87c94b1da2f04197263654f54a1..3b3872b71fdaba3825bd45a8c0a1044ed9539441 100644 (file)
   
     
       <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
-        <script src="../_static/jquery.js"></script>
-        <script src="../_static/underscore.js"></script>
-        <script src="../_static/doctools.js"></script>
-        <script src="../_static/language_data.js"></script>
+        <script type="text/javascript" src="../_static/jquery.js"></script>
+        <script type="text/javascript" src="../_static/underscore.js"></script>
+        <script type="text/javascript" src="../_static/doctools.js"></script>
+        <script type="text/javascript" src="../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../_static/js/theme.js"></script>
 
@@ -36,8 +36,8 @@
     <link rel="index" title="Index" href="../genindex.html" />
     <link rel="search" title="Search" href="../search.html" />
     <link rel="copyright" title="Copyright" href="../copyright.html" />
-    <link rel="next" title="memstat - Gather statistics from a server" href="memstat.html" />
-    <link rel="prev" title="memslap - Load testing and benchmarking a server" href="memslap.html" /> 
+    <link rel="next" title="memslap" href="memslap.html" />
+    <link rel="prev" title="memrm" href="memrm.html" /> 
 </head>
 
 <body class="wy-body-for-nav">
               
             
             
-              <p class="caption"><span class="caption-text">libmemcached</span></p>
-<ul>
+              <ul class="current">
 <li class="toctree-l1"><a class="reference internal" href="../libmemcached.html">Introduction</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../libmemcached/index.html">libmemcached API</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../libmemcached/index_misc.html">Misc</a></li>
-</ul>
-<p class="caption"><span class="caption-text">libmemcachedutil</span></p>
-<ul>
-<li class="toctree-l1"><a class="reference internal" href="../libmemcachedutil.html">Introduction</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../libmemcachedutil/index.html">libmemcachedutil API</a></li>
-</ul>
-<p class="caption"><span class="caption-text">libhashkit</span></p>
-<ul>
-<li class="toctree-l1"><a class="reference internal" href="../libhashkit.html">Introduction</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../libhashkit/index.html">libhashkit API</a></li>
-</ul>
-<p class="caption"><span class="caption-text">Client Applications</span></p>
-<ul class="current">
 <li class="toctree-l1 current"><a class="reference internal" href="index.html">Client Applications</a><ul class="current">
-<li class="toctree-l2"><a class="reference internal" href="memcapable.html">memcapable - Checking a Memcached server capabilities and compatibility</a></li>
-<li class="toctree-l2"><a class="reference internal" href="memcat.html">memcat - “cat” data from a server</a></li>
-<li class="toctree-l2"><a class="reference internal" href="memcp.html">memcp - Copy data to a server</a></li>
-<li class="toctree-l2"><a class="reference internal" href="memdump.html">memdump - Dumping your server</a></li>
-<li class="toctree-l2"><a class="reference internal" href="memerror.html">memerror - translate an error code to a string</a></li>
-<li class="toctree-l2"><a class="reference internal" href="memflush.html">memflush - flush all data from a server</a></li>
-<li class="toctree-l2"><a class="reference internal" href="memrm.html">memrm - Remove data from a server</a></li>
-<li class="toctree-l2"><a class="reference internal" href="memslap.html">memslap - Load testing  and benchmarking a server</a></li>
-<li class="toctree-l2 current"><a class="current reference internal" href="#">memaslap - Load testing  and benchmarking a server</a><ul>
-<li class="toctree-l3"><a class="reference internal" href="#synopsis">SYNOPSIS</a></li>
-<li class="toctree-l3"><a class="reference internal" href="#description">DESCRIPTION</a></li>
-<li class="toctree-l3"><a class="reference internal" href="#features">FEATURES</a></li>
-<li class="toctree-l3"><a class="reference internal" href="#details">DETAILS</a><ul>
-<li class="toctree-l4"><a class="reference internal" href="#effective-implementation-of-network">Effective implementation of network.</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#effective-implementation-of-multi-threads-and-concurrency">Effective implementation of multi-threads and concurrency</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#effective-implementation-of-generating-key-and-value">Effective implementation of generating key and value</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#simple-but-useful-task-scheduling">Simple but useful task scheduling</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#useful-implementation-of-multi-servers-udp-tcp-multi-get-and-binary-protocol">Useful implementation of multi-servers , UDP, TCP, multi-get and binary protocol</a></li>
-</ul>
-</li>
-<li class="toctree-l3"><a class="reference internal" href="#usage">USAGE</a><ul>
-<li class="toctree-l4"><a class="reference internal" href="#key-size-value-size-and-command-distribution">Key size, value size and command distribution.</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#multi-thread-and-concurrency">Multi-thread and concurrency</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#window-size">Window size</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#verification">Verification</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#multi-servers-and-multi-config">multi-servers and multi-config</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#run-with-execute-number-mode-or-time-mode">Run with execute number mode or time mode</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#dump-statistic-information-periodically">Dump statistic information periodically.</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#multi-get">Multi-get</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#udp-and-tcp">UDP and TCP</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#facebook-test">Facebook test</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#replication-test">Replication test</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#supports-thousands-of-tcp-connections">Supports thousands of TCP connections</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#supports-binary-protocol">Supports binary protocol</a></li>
-</ul>
-</li>
-<li class="toctree-l3"><a class="reference internal" href="#configuration-file">Configuration file</a></li>
-<li class="toctree-l3"><a class="reference internal" href="#format-of-output">Format of output</a><ul>
-<li class="toctree-l4"><a class="reference internal" href="#where">Where</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#id1">Where</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#id2">Where</a></li>
+<li class="toctree-l2"><a class="reference internal" href="memexist.html">memexist — Check for the existence of a key</a></li>
+<li class="toctree-l2"><a class="reference internal" href="memcat.html">memcat — &quot;cat&quot; data from a server</a></li>
+<li class="toctree-l2"><a class="reference internal" href="memcp.html">memcp — &quot;cp&quot; files to a server</a></li>
+<li class="toctree-l2"><a class="reference internal" href="memtouch.html">memtouch — &quot;touch&quot; a key</a></li>
+<li class="toctree-l2"><a class="reference internal" href="memrm.html">memrm – &quot;rm&quot; a key</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="#">memaslap - Load testing and benchmarking a server</a></li>
+<li class="toctree-l2"><a class="reference internal" href="memslap.html">memslap - Load testing and benchmarking a server</a></li>
+<li class="toctree-l2"><a class="reference internal" href="memping.html">memping – Ping a server</a></li>
+<li class="toctree-l2"><a class="reference internal" href="memstat.html">memstat – Gather statistics from a server</a></li>
+<li class="toctree-l2"><a class="reference internal" href="memerror.html">memerror — Translate libmemcached error codes</a></li>
+<li class="toctree-l2"><a class="reference internal" href="memparse.html">memparse — Parse and validate an option string</a></li>
+<li class="toctree-l2"><a class="reference internal" href="memcapable.html">memcapable — Check a server's capabilities and compatibility</a></li>
+<li class="toctree-l2"><a class="reference internal" href="memdump.html">memdump — Dump a server's data</a></li>
+<li class="toctree-l2"><a class="reference internal" href="memflush.html">memflush — Flush a server (erase all cached data)</a></li>
 </ul>
 </li>
-<li class="toctree-l3"><a class="reference internal" href="#options">OPTIONS</a></li>
-<li class="toctree-l3"><a class="reference internal" href="#examples">EXAMPLES</a></li>
-<li class="toctree-l3"><a class="reference internal" href="#see-also">SEE ALSO</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../libmemcached/index_misc.html">Miscellaneous</a></li>
 </ul>
-</li>
-<li class="toctree-l2"><a class="reference internal" href="memstat.html">memstat - Gather statistics from a server</a></li>
-<li class="toctree-l2"><a class="reference internal" href="memexist.html">memexist - Check for the existence of a key</a></li>
-<li class="toctree-l2"><a class="reference internal" href="memparse.html">memparse - Parse an option string</a></li>
-<li class="toctree-l2"><a class="reference internal" href="memping.html">memping - Test to see if a server is available.</a></li>
-<li class="toctree-l2"><a class="reference internal" href="memtouch.html">memtouch - Touches a key.</a></li>
-</ul>
-</li>
-</ul>
-<p class="caption"><span class="caption-text">Copyright</span></p>
 <ul>
+<li class="toctree-l1"><a class="reference internal" href="../changelogs.html">Change Logs</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../copyright.html">Copyright</a></li>
 </ul>
 
       <li class="wy-breadcrumbs-aside">
         
             
+            
+              <a href="https://github.com/m6w6/libmemcached/blob/v1.x/docs/source/bin/memaslap.rst" class="fa fa-github"> Edit on GitHub</a>
+            
+          
         
       </li>
     
 <p>memaslap [options]</p>
 <dl class="option">
 <dt id="cmdoption-memaslap-help">
-<code class="sig-name descname">--help</code><code class="sig-prename descclassname"></code><a class="headerlink" href="#cmdoption-memaslap-help" title="Permalink to this definition">¶</a></dt>
+<code class="descname">--help</code><code class="descclassname"></code><a class="headerlink" href="#cmdoption-memaslap-help" title="Permalink to this definition">¶</a></dt>
 <dd></dd></dl>
 
 <dl class="envvar">
 <dt id="envvar-MEMCACHED_SERVERS">
-<code class="sig-name descname">MEMCACHED_SERVERS</code><a class="headerlink" href="#envvar-MEMCACHED_SERVERS" title="Permalink to this definition">¶</a></dt>
+<code class="descname">MEMCACHED_SERVERS</code><a class="headerlink" href="#envvar-MEMCACHED_SERVERS" title="Permalink to this definition">¶</a></dt>
 <dd></dd></dl>
 
 </div>
@@ -253,11 +206,11 @@ verification, expire-time verification, UDP, binary protocol, facebook test,
 replication test, multi-get and reconnection, etc.</p>
 <p>Memaslap manages network connections like memcached with
 libevent. Each thread of memaslap is bound with a CPU core, all
-the threads dont communicate with each other, and there are several socket
+the threads don't communicate with each other, and there are several socket
 connections in each thread. Each connection keeps key size distribution,
 value size distribution, and command distribution by itself.</p>
 <p>You can specify servers via the <a class="reference internal" href="memslap.html#cmdoption-memslap-servers"><code class="xref std std-option docutils literal notranslate"><span class="pre">memslap</span> <span class="pre">--servers</span></code></a> option or via the
-environment variable <span class="target" id="index-0"></span><a class="reference internal" href="#envvar-MEMCACHED_SERVERS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">MEMCACHED_SERVERS</span></code></a>.</p>
+environment variable <span class="target" id="index-0"></span><a class="reference internal" href="memstat.html#envvar-MEMCACHED_SERVERS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">MEMCACHED_SERVERS</span></code></a>.</p>
 </div>
 <div class="section" id="features">
 <h2>FEATURES<a class="headerlink" href="#features" title="Permalink to this headline">¶</a></h2>
@@ -292,7 +245,7 @@ each thread is bound with one CPU core if the system tests setting CPU
 core affinity.</p>
 <p>In addition, each thread has a libevent to manage the events of the network;
 each thread has one or more self-governed concurrency; and each
-concurrency has one or more socket connections. All the concurrent tasks dont
+concurrency has one or more socket connections. All the concurrent tasks don't
 communicate with each other even though they are in the same thread.</p>
 <p>Memslap can create thousands of socket connections, and each
 concurrency has tens of socket connections. Each concurrency randomly or
@@ -312,9 +265,9 @@ of the string to identify a string. It can save much memory.
 Each key contains two parts, a prefix and a suffix. The prefix is an
 uint64_t, 8 bytes. In order to verify the data set before,
 memaslap need to ensure each key is unique, so it uses the prefix to identify
-a key. The prefix cannot include illegal characters, such as ‘r’, ‘n’,
-‘0’ and ‘ ‘. And memaslap has an algorithm to ensure that.</p>
-<p>Memslap doesnt generate all the objects (key-value pairs) at
+a key. The prefix cannot include illegal characters, such as 'r', 'n',
+'0' and ' '. And memaslap has an algorithm to ensure that.</p>
+<p>Memslap doesn't generate all the objects (key-value pairs) at
 the beginning. It only generates enough objects to fill the task window
 (default 10K objects) of each concurrency. Each object has the following
 basic information, key prefix, key suffix offset in the character table, key
@@ -402,10 +355,10 @@ rest of the parameters have default values, as shown below:</p>
 <div class="section" id="key-size-value-size-and-command-distribution">
 <h3>Key size, value size and command distribution.<a class="headerlink" href="#key-size-value-size-and-command-distribution" title="Permalink to this headline">¶</a></h3>
 <p>All the distributions are read from the configuration file specified by user
-with “—cfg_cmd” option. If the user does not specify a configuration file,
+with &quot;—cfg_cmd&quot; option. If the user does not specify a configuration file,
 memaslap will run with the default distribution (key size = 64,
 value size = 1024, get/set = 9:1). For information on how to edit the
-configuration file, refer to the “Configuration File” section.</p>
+configuration file, refer to the &quot;Configuration File&quot; section.</p>
 <p>The minimum key size is 16 bytes; the maximum key size is 250 bytes. The
 precision of proportion is 0.001. The proportion of distribution will be
 rounded to 3 decimal places.</p>
@@ -419,9 +372,9 @@ the server.</p>
 <div class="section" id="multi-thread-and-concurrency">
 <h3>Multi-thread and concurrency<a class="headerlink" href="#multi-thread-and-concurrency" title="Permalink to this headline">¶</a></h3>
 <p>The high performance of memaslap benefits from the special
-schedule of thread and concurrency. Its important to specify the proper
+schedule of thread and concurrency. It's important to specify the proper
 number of them. The default number of threads is 1; the default number of
-concurrency is 16. The user can use “—threads” and “–concurrency” to
+concurrency is 16. The user can use &quot;—threads&quot; and &quot;--concurrency&quot; to
 specify these variables.</p>
 <p>If the system tests setting CPU affinity and the number of threads
 specified by the user is greater than 1, memaslap will try to
@@ -432,21 +385,21 @@ the user can also be less or greater than the number of CPU cores. Because
 of the limitation of implementation, the number of concurrencies could be
 the multiple of the number of threads.</p>
 <ol class="arabic simple">
-<li><p>For 8 CPU cores system</p></li>
+<li>For 8 CPU cores system</li>
 </ol>
 <p>For example:</p>
-<p>–threads=2 –concurrency=128</p>
-<p>–threads=8 –concurrency=128</p>
-<p>–threads=8 –concurrency=256</p>
-<p>–threads=12 –concurrency=144</p>
+<p>--threads=2 --concurrency=128</p>
+<p>--threads=8 --concurrency=128</p>
+<p>--threads=8 --concurrency=256</p>
+<p>--threads=12 --concurrency=144</p>
 <ol class="arabic simple" start="2">
-<li><p>For 16 CPU cores system</p></li>
+<li>For 16 CPU cores system</li>
 </ol>
 <p>For example:</p>
-<p>–threads=8 –concurrency=128</p>
-<p>–threads=16 –concurrency=256</p>
-<p>–threads=16 –concurrency=512</p>
-<p>–threads=24 –concurrency=288</p>
+<p>--threads=8 --concurrency=128</p>
+<p>--threads=16 --concurrency=256</p>
+<p>--threads=16 --concurrency=512</p>
+<p>--threads=24 --concurrency=288</p>
 <p>The memaslap performs very well, when
 used to test the performance of memcached servers.
 Most of the time, the bottleneck is the network or
@@ -454,13 +407,13 @@ the server. If for some reason the user wants to
 limit the performance of memaslap, there
 are two ways to do this:</p>
 <p>Decrease the number of threads and concurrencies.
-Use the option “–tps” that memaslap
+Use the option &quot;--tps&quot; that memaslap
 provides to limit the throughput. This option allows
 the user to get the expected throughput. For
 example, assume that the maximum throughput is 50
 kops/s for a specific configuration, you can specify
 the throughput equal to or less than the maximum
-throughput using “–tps” option.</p>
+throughput using &quot;--tps&quot; option.</p>
 </div>
 <div class="section" id="window-size">
 <h3>Window size<a class="headerlink" href="#window-size" title="Permalink to this headline">¶</a></h3>
@@ -476,14 +429,14 @@ concurrency=128.</p>
 <p>1. Small cache cache_size=1M, 100% cache miss (all data get from SSD).
 win_size=10k</p>
 <ol class="arabic simple" start="2">
-<li><p>cache_size=4G</p></li>
+<li>cache_size=4G</li>
 </ol>
 <p>(1). cache miss rate 0%</p>
 <p>win_size=8k</p>
 <p>(2). cache miss rate 5%</p>
 <p>win_size=11k</p>
 <ol class="arabic simple" start="3">
-<li><p>cache_size=16G</p></li>
+<li>cache_size=16G</li>
 </ol>
 <p>(1). cache miss rate 0%</p>
 <p>win_size=32k</p>
@@ -498,13 +451,13 @@ win_size=10k</p>
 <div class="section" id="verification">
 <h3>Verification<a class="headerlink" href="#verification" title="Permalink to this headline">¶</a></h3>
 <p>Memslap testss both data verification and expire-time
-verification. The user can use “–verify=” or “-v” to specify the proportion
+verification. The user can use &quot;--verify=&quot; or &quot;-v&quot; to specify the proportion
 of data verification. In theory, it testss 100% data verification. The
-user can use “–exp_verify=” or “-e” to specify the proportion of
+user can use &quot;--exp_verify=&quot; or &quot;-e&quot; to specify the proportion of
 expire-time verification. In theory, it testss 100% expire-time
-verification. Specify the “–verbose” options to get more detailed error
+verification. Specify the &quot;--verbose&quot; options to get more detailed error
 information.</p>
-<p>For example: exp_verify=0.01 –verify=0.1 , it means that 1% of the objects
+<p>For example: --exp_verify=0.01 –verify=0.1 , it means that 1% of the objects
 set with expire-time, 10% of the objects gotten will be verified. If the
 objects are gotten, memaslap will verify the expire-time and
 value.</p>
@@ -514,10 +467,10 @@ value.</p>
 <p>Memslap testss multi-servers based on self-governed thread.
 There is a limitation that the number of servers cannot be greater than the
 number of threads. Memslap assigns one thread to handle one
-server at least. The user can use the “–servers=” or “-s” option to specify
+server at least. The user can use the &quot;--servers=&quot; or &quot;-s&quot; option to specify
 multi-servers.</p>
 <p>For example:</p>
-<p>–servers=10.1.1.1:11211,10.1.1.2:11212,10.1.1.3:11213 –threads=6 –concurrency=36</p>
+<p>--servers=10.1.1.1:11211,10.1.1.2:11212,10.1.1.3:11213 --threads=6 --concurrency=36</p>
 <p>The above command means that there are 6 threads, with each thread having 6
 concurrencies and that threads 0 and 3 handle server 0 (10.1.1.1); threads 1
 and 4 handle server 1 (10.1.1.2); and thread 2 and 5 handle server 2
@@ -536,64 +489,64 @@ is 10 minutes. If it times out, memaslap will exit. Do not
 specify both execute number mode and time mode at the same time; just
 specify one instead.</p>
 <p>For example:</p>
-<p>time=30s (It means the test will run 30 seconds.)</p>
-<p>execute_number=100000 (It means that after running 100000 commands, the test will exit.)</p>
+<p>--time=30s (It means the test will run 30 seconds.)</p>
+<p>--execute_number=100000 (It means that after running 100000 commands, the test will exit.)</p>
 </div>
 <div class="section" id="dump-statistic-information-periodically">
 <h3>Dump statistic information periodically.<a class="headerlink" href="#dump-statistic-information-periodically" title="Permalink to this headline">¶</a></h3>
-<p>The user can use “–stat_freq=” or “-S” to specify the frequency.</p>
+<p>The user can use &quot;--stat_freq=&quot; or &quot;-S&quot; to specify the frequency.</p>
 <p>For example:</p>
-<p>stat_freq=20s</p>
+<p>--stat_freq=20s</p>
 <p>Memslap will dump the statistics of the commands (get and set) at the frequency of every 20
 seconds.</p>
-<p>For more information on the format of dumping statistic information, refer to “Format of Output” section.</p>
+<p>For more information on the format of dumping statistic information, refer to &quot;Format of Output&quot; section.</p>
 </div>
 <div class="section" id="multi-get">
 <h3>Multi-get<a class="headerlink" href="#multi-get" title="Permalink to this headline">¶</a></h3>
-<p>The user can use “–division=” or “-d” to specify multi-get keys count.
+<p>The user can use &quot;--division=&quot; or &quot;-d&quot; to specify multi-get keys count.
 Memslap by default does single get with TCP. Memslap also testss data
 verification and expire-time verification for multi-get.</p>
 <p>Memslap testss multi-get with both TCP and UDP. Because of
 the different implementation of the ASCII protocol and binary protocol,
 there are some differences between the two. For the ASCII protocol,
-memaslap sends one “multi-get” to the server once. For the
+memaslap sends one &quot;multi-get&quot; to the server once. For the
 binary protocol, memaslap sends several single get commands
-together as “multi-get” to the server.</p>
+together as &quot;multi-get&quot; to the server.</p>
 </div>
 <div class="section" id="udp-and-tcp">
 <h3>UDP and TCP<a class="headerlink" href="#udp-and-tcp" title="Permalink to this headline">¶</a></h3>
 <p>Memslap testss both UDP and TCP. For TCP,
 memaslap does not reconnect the memcached server if socket connections are
 lost. If all the socket connections are lost or memcached server crashes,
-memaslap will exit. If the user specifies the “–reconnect”
+memaslap will exit. If the user specifies the &quot;--reconnect&quot;
 option when socket connections are lost, it will reconnect them.</p>
-<p>User can use “–udp” to enable the UDP feature, but UDP comes with some
+<p>User can use &quot;--udp&quot; to enable the UDP feature, but UDP comes with some
 limitations:</p>
 <p>UDP cannot set data more than 1400 bytes.</p>
 <p>UDP is not tested by the binary protocol because the binary protocol of
 memcached does not tests that.</p>
-<p>UDP doesnt tests reconnection.</p>
+<p>UDP doesn't tests reconnection.</p>
 </div>
 <div class="section" id="facebook-test">
 <h3>Facebook test<a class="headerlink" href="#facebook-test" title="Permalink to this headline">¶</a></h3>
 <p>Set data with TCP and multi-get with UDP. Specify the following options:</p>
-<p>“–facebook –division=50”</p>
+<p>&quot;--facebook --division=50&quot;</p>
 <p>If you want to create thousands of TCP connections, specify the</p>
-<p>“–conn_sock=” option.</p>
-<p>For example: –facebook –division=50 –conn_sock=200</p>
+<p>&quot;--conn_sock=&quot; option.</p>
+<p>For example: --facebook --division=50 --conn_sock=200</p>
 <p>The above command means that memaslap will do facebook test,
 each concurrency has 200 socket TCP connections and one UDP socket.</p>
 <p>Memslap sets objects with the TCP socket, and multi-gets 50
 objects once with the UDP socket.</p>
-<p>If you specify “–division=50”, the key size must be less that 25 bytes
+<p>If you specify &quot;--division=50&quot;, the key size must be less that 25 bytes
 because the UDP packet size is 1400 bytes.</p>
 </div>
 <div class="section" id="replication-test">
 <h3>Replication test<a class="headerlink" href="#replication-test" title="Permalink to this headline">¶</a></h3>
 <p>For replication test, the user must specify at least two memcached servers.
-The user can use “—rep_write=” option to enable feature.</p>
+The user can use &quot;—rep_write=&quot; option to enable feature.</p>
 <p>For example:</p>
-<p>servers=10.1.1.1:11211,10.1.1.2:11212 –rep_write=2</p>
+<p>--servers=10.1.1.1:11211,10.1.1.2:11212 –rep_write=2</p>
 <p>The above command means that there are 2 replication memcached servers,
 memaslap will set objects to both server 0 and server 1, get
 objects which are set to server 0 before from server 1, and also get objects
@@ -604,12 +557,12 @@ server 0 and server 1 crash, memaslap will exit.</p>
 </div>
 <div class="section" id="supports-thousands-of-tcp-connections">
 <h3>Supports thousands of TCP connections<a class="headerlink" href="#supports-thousands-of-tcp-connections" title="Permalink to this headline">¶</a></h3>
-<p>Start memaslap with “–conn_sock=” or “-n” to enable this
+<p>Start memaslap with &quot;--conn_sock=&quot; or &quot;-n&quot; to enable this
 feature. Make sure that your system can tests opening thousands of files
 and creating thousands of sockets. However, this feature does not tests
 reconnection if sockets disconnect.</p>
 <p>For example:</p>
-<p>–threads=8 –concurrency=128 –conn_sock=128</p>
+<p>--threads=8 --concurrency=128 --conn_sock=128</p>
 <p>The above command means that memaslap starts up 8 threads, each
 thread has 16 concurrencies, each concurrency has 128 TCP socket
 connections, and the total number of TCP socket connections is 128 * 128 =
@@ -617,15 +570,15 @@ connections, and the total number of TCP socket connections is 128 * 128 =
 </div>
 <div class="section" id="supports-binary-protocol">
 <h3>Supports binary protocol<a class="headerlink" href="#supports-binary-protocol" title="Permalink to this headline">¶</a></h3>
-<p>Start memaslap with “–binary” or “-B” options to enable this
+<p>Start memaslap with &quot;--binary&quot; or &quot;-B&quot; options to enable this
 feature. It testss all the above features except UDP, because the latest
 memcached 1.3.3 does not implement binary UDP protocol.</p>
 <p>For example:</p>
-<p>binary</p>
-<p>Since memcached 1.3.3 doesnt implement binary UDP protocol,
+<p>--binary</p>
+<p>Since memcached 1.3.3 doesn't implement binary UDP protocol,
 memaslap does not tests UDP. In addition, memcached 1.3.3 does not tests
-multi-get. If you specify “–division=50” option, it just sends 50 get
-commands together as “multi-get” to the server.</p>
+multi-get. If you specify &quot;--division=50&quot; option, it just sends 50 get
+commands together as &quot;multi-get&quot; to the server.</p>
 </div>
 </div>
 <div class="section" id="configuration-file">
@@ -720,34 +673,27 @@ one located at ~/.memaslap.cnf.</p>
 <p>get proportion: get_prop=0.90</p>
 <div class="section" id="where">
 <h3>Where<a class="headerlink" href="#where" title="Permalink to this headline">¶</a></h3>
-<p>servers : “servers”</p>
+<p>servers : &quot;servers&quot;</p>
 <blockquote>
-<div><p>The servers used by memaslap.</p>
-</div></blockquote>
+<div>The servers used by memaslap.</div></blockquote>
 <p>threads count</p>
 <blockquote>
-<div><p>The number of threads memaslap runs with.</p>
-</div></blockquote>
+<div>The number of threads memaslap runs with.</div></blockquote>
 <p>concurrency</p>
 <blockquote>
-<div><p>The number of concurrencies memaslap runs with.</p>
-</div></blockquote>
+<div>The number of concurrencies memaslap runs with.</div></blockquote>
 <p>run time</p>
 <blockquote>
-<div><p>How long to run memaslap.</p>
-</div></blockquote>
+<div>How long to run memaslap.</div></blockquote>
 <p>windows size</p>
 <blockquote>
-<div><p>The task window size of each concurrency.</p>
-</div></blockquote>
+<div>The task window size of each concurrency.</div></blockquote>
 <p>set proportion</p>
 <blockquote>
-<div><p>The proportion of set command.</p>
-</div></blockquote>
+<div>The proportion of set command.</div></blockquote>
 <p>get proportion</p>
 <blockquote>
-<div><p>The proportion of get command.</p>
-</div></blockquote>
+<div>The proportion of get command.</div></blockquote>
 <p>The output of dynamic statistics is something like this:</p>
 <div class="highlight-perl notranslate"><div class="highlight"><pre><span></span><span class="o">---------------------------------------------------------------------------------------------------------------------------------</span>
 <span class="n">Get</span> <span class="n">Statistics</span>
@@ -781,60 +727,46 @@ one located at ~/.memaslap.cnf.</p>
 <h3>Where<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h3>
 <p>Get Statistics</p>
 <blockquote>
-<div><p>Statistics information of get command</p>
-</div></blockquote>
+<div>Statistics information of get command</div></blockquote>
 <p>Set Statistics</p>
 <blockquote>
-<div><p>Statistics information of set command</p>
-</div></blockquote>
+<div>Statistics information of set command</div></blockquote>
 <p>Total Statistics</p>
 <blockquote>
-<div><p>Statistics information of both get and set command</p>
-</div></blockquote>
+<div>Statistics information of both get and set command</div></blockquote>
 <p>Period</p>
 <blockquote>
-<div><p>Result within a period</p>
-</div></blockquote>
+<div>Result within a period</div></blockquote>
 <p>Global</p>
 <blockquote>
-<div><p>Accumulated results</p>
-</div></blockquote>
+<div>Accumulated results</div></blockquote>
 <p>Ops</p>
 <blockquote>
-<div><p>Total operations</p>
-</div></blockquote>
+<div>Total operations</div></blockquote>
 <p>TPS</p>
 <blockquote>
-<div><p>Throughput, operations/second</p>
-</div></blockquote>
+<div>Throughput, operations/second</div></blockquote>
 <p>Net</p>
 <blockquote>
-<div><p>The rate of network</p>
-</div></blockquote>
+<div>The rate of network</div></blockquote>
 <p>Get_miss</p>
 <blockquote>
-<div><p>How many objects can’t be gotten</p>
-</div></blockquote>
+<div>How many objects can't be gotten</div></blockquote>
 <p>Min</p>
 <blockquote>
-<div><p>The minimum response time</p>
-</div></blockquote>
+<div>The minimum response time</div></blockquote>
 <p>Max</p>
 <blockquote>
-<div><p>The maximum response time</p>
-</div></blockquote>
+<div>The maximum response time</div></blockquote>
 <p>Avg:</p>
 <blockquote>
-<div><p>The average response time</p>
-</div></blockquote>
+<div>The average response time</div></blockquote>
 <p>Std_dev</p>
 <blockquote>
-<div><p>Standard deviation of response time</p>
-</div></blockquote>
+<div>Standard deviation of response time</div></blockquote>
 <p>Geo_dist</p>
 <blockquote>
-<div><p>Geometric distribution based on natural exponential function</p>
-</div></blockquote>
+<div>Geometric distribution based on natural exponential function</div></blockquote>
 <p>At the end, memaslap will output something like this:</p>
 <div class="highlight-perl notranslate"><div class="highlight"><pre><span></span><span class="o">---------------------------------------------------------------------------------------------------------------------------------</span>
 <span class="n">Get</span> <span class="n">Statistics</span> <span class="p">(</span><span class="mi">1257956</span> <span class="n">events</span><span class="p">)</span>
@@ -893,177 +825,161 @@ one located at ~/.memaslap.cnf.</p>
 <h3>Where<a class="headerlink" href="#id2" title="Permalink to this headline">¶</a></h3>
 <p>Get Statistics</p>
 <blockquote>
-<div><p>Get statistics of response time</p>
-</div></blockquote>
+<div>Get statistics of response time</div></blockquote>
 <p>Set Statistics</p>
 <blockquote>
-<div><p>Set statistics of response time</p>
-</div></blockquote>
+<div>Set statistics of response time</div></blockquote>
 <p>Total Statistics</p>
 <blockquote>
-<div><p>Both get and set statistics of response time</p>
-</div></blockquote>
+<div>Both get and set statistics of response time</div></blockquote>
 <p>Min</p>
 <blockquote>
-<div><p>The accumulated and minimum response time</p>
-</div></blockquote>
+<div>The accumulated and minimum response time</div></blockquote>
 <p>Max</p>
 <blockquote>
-<div><p>The accumulated and maximum response time</p>
-</div></blockquote>
+<div>The accumulated and maximum response time</div></blockquote>
 <p>Avg</p>
 <blockquote>
-<div><p>The accumulated and average response time</p>
-</div></blockquote>
+<div>The accumulated and average response time</div></blockquote>
 <p>Std</p>
 <blockquote>
-<div><p>Standard deviation of response time</p>
-</div></blockquote>
+<div>Standard deviation of response time</div></blockquote>
 <p>Log2 Dist</p>
 <blockquote>
-<div><p>Geometric distribution based on logarithm 2</p>
-</div></blockquote>
+<div>Geometric distribution based on logarithm 2</div></blockquote>
 <p>cmd_get</p>
 <blockquote>
-<div><p>Total get commands done</p>
-</div></blockquote>
+<div>Total get commands done</div></blockquote>
 <p>cmd_set</p>
 <blockquote>
-<div><p>Total set commands done</p>
-</div></blockquote>
+<div>Total set commands done</div></blockquote>
 <p>get_misses</p>
 <blockquote>
-<div><p>How many objects can’t be gotten from server</p>
-</div></blockquote>
+<div>How many objects can't be gotten from server</div></blockquote>
 <p>verify_misses</p>
 <blockquote>
-<div><p>How many objects need to verify but can’t get them</p>
-</div></blockquote>
+<div>How many objects need to verify but can't get them</div></blockquote>
 <p>verify_failed</p>
 <blockquote>
-<div><p>How many objects with insistent value</p>
-</div></blockquote>
+<div>How many objects with insistent value</div></blockquote>
 <p>expired_get</p>
 <blockquote>
-<div><p>How many objects are expired but we get them</p>
-</div></blockquote>
+<div>How many objects are expired but we get them</div></blockquote>
 <p>unexpired_unget</p>
 <blockquote>
-<div><p>How many objects are unexpired but we can’t get them</p>
-</div></blockquote>
+<div>How many objects are unexpired but we can't get them</div></blockquote>
 <p>written_bytes</p>
 <blockquote>
-<div><p>Total written bytes</p>
-</div></blockquote>
+<div>Total written bytes</div></blockquote>
 <p>read_bytes</p>
 <blockquote>
-<div><p>Total read bytes</p>
-</div></blockquote>
+<div>Total read bytes</div></blockquote>
 <p>object_bytes</p>
 <blockquote>
-<div><p>Total object bytes</p>
-</div></blockquote>
+<div>Total object bytes</div></blockquote>
 <p>packet_disorder</p>
 <blockquote>
-<div><p>How many UDP packages are disorder</p>
-</div></blockquote>
+<div>How many UDP packages are disorder</div></blockquote>
 <p>packet_drop</p>
 <blockquote>
-<div><p>How many UDP packages are lost</p>
-</div></blockquote>
+<div>How many UDP packages are lost</div></blockquote>
 <p>udp_timeout</p>
 <blockquote>
-<div><p>How many times UDP time out happen</p>
-</div></blockquote>
+<div>How many times UDP time out happen</div></blockquote>
 <p>Run time</p>
 <blockquote>
-<div><p>Total run time</p>
-</div></blockquote>
+<div>Total run time</div></blockquote>
 <p>Ops</p>
 <blockquote>
-<div><p>Total operations</p>
-</div></blockquote>
+<div>Total operations</div></blockquote>
 <p>TPS</p>
 <blockquote>
-<div><p>Throughput, operations/second</p>
-</div></blockquote>
+<div>Throughput, operations/second</div></blockquote>
 <p>Net_rate</p>
 <blockquote>
-<div><p>The average rate of network</p>
-</div></blockquote>
+<div>The average rate of network</div></blockquote>
 </div>
 </div>
 <div class="section" id="options">
 <h2>OPTIONS<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
-<dl class="simple">
-<dt>-s, –servers=</dt><dd><p>List one or more servers to connect. Servers count must be less than
-threads count. e.g.: –servers=localhost:1234,localhost:11211</p>
-</dd>
-<dt>-T, –threads=</dt><dd><p>Number of threads to startup, better equal to CPU numbers. Default 8.</p>
-</dd>
-<dt>-c, –concurrency=</dt><dd><p>Number of concurrency to simulate with load. Default 128.</p>
-</dd>
-<dt>-n, –conn_sock=</dt><dd><p>Number of TCP socks per concurrency. Default 1.</p>
-</dd>
-<dt>-x, –execute_number=</dt><dd><p>Number of operations(get and set) to execute for the
-given test. Default 1000000.</p>
-</dd>
-<dt>-t, –time=</dt><dd><p>How long the test to run, suffix: s-seconds, m-minutes, h-hours,
-d-days e.g.: –time=2h.</p>
-</dd>
-<dt>-F, –cfg_cmd=</dt><dd><p>Load the configure file to get command,key and value distribution list.</p>
-</dd>
-<dt>-w, –win_size=</dt><dd><p>Task window size of each concurrency, suffix: K, M e.g.: –win_size=10k.
-Default 10k.</p>
-</dd>
-<dt>-X, –fixed_size=</dt><dd><p>Fixed length of value.</p>
-</dd>
-<dt>-v, –verify=</dt><dd><p>The proportion of date verification, e.g.: –verify=0.01</p>
-</dd>
-<dt>-d, –division=</dt><dd><p>Number of keys to multi-get once. Default 1, means single get.</p>
-</dd>
-<dt>-S, –stat_freq=</dt><dd><p>Frequency of dumping statistic information. suffix: s-seconds,
-m-minutes, e.g.: –resp_freq=10s.</p>
-</dd>
-<dt>-e, –exp_verify=</dt><dd><p>The proportion of objects with expire time, e.g.: –exp_verify=0.01.
-Default no object with expire time</p>
-</dd>
-<dt>-o, –overwrite=</dt><dd><p>The proportion of objects need overwrite, e.g.: –overwrite=0.01.
-Default never overwrite object.</p>
-</dd>
-</dl>
-<dl class="option-list">
-<dt><kbd><span class="option">-R</span>, <span class="option">--reconnect</span></kbd></dt>
-<dd><p>Reconnect tests, when connection is closed it will be reconnected.</p>
-</dd>
-<dt><kbd><span class="option">-U</span>, <span class="option">--udp</span></kbd></dt>
-<dd><p>UDP tests, default memaslap uses TCP, TCP port and UDP port of
-server must be same.</p>
-</dd>
-<dt><kbd><span class="option">-a</span>, <span class="option">--facebook</span></kbd></dt>
-<dd><p>Whether it enables facebook test feature, set with TCP and multi-get with UDP.</p>
-</dd>
-<dt><kbd><span class="option">-B</span>, <span class="option">--binary</span></kbd></dt>
-<dd><p>Whether it enables binary protocol. Default with ASCII protocol.</p>
-</dd>
-</dl>
-<dl class="simple">
-<dt>-P, –tps=</dt><dd><p>Expected throughput, suffix: K, e.g.: –tps=10k.</p>
-</dd>
-<dt>-p, –rep_write=</dt><dd><p>The first nth servers can write data, e.g.: –rep_write=2.</p>
-</dd>
+<dl class="docutils">
+<dt>-s, --servers=</dt>
+<dd>List one or more servers to connect. Servers count must be less than
+threads count. e.g.: --servers=localhost:1234,localhost:11211</dd>
+<dt>-T, --threads=</dt>
+<dd>Number of threads to startup, better equal to CPU numbers. Default 8.</dd>
+<dt>-c, --concurrency=</dt>
+<dd>Number of concurrency to simulate with load. Default 128.</dd>
+<dt>-n, --conn_sock=</dt>
+<dd>Number of TCP socks per concurrency. Default 1.</dd>
+<dt>-x, --execute_number=</dt>
+<dd>Number of operations(get and set) to execute for the
+given test. Default 1000000.</dd>
+<dt>-t, --time=</dt>
+<dd>How long the test to run, suffix: s-seconds, m-minutes, h-hours,
+d-days e.g.: --time=2h.</dd>
+<dt>-F, --cfg_cmd=</dt>
+<dd>Load the configure file to get command,key and value distribution list.</dd>
+<dt>-w, --win_size=</dt>
+<dd>Task window size of each concurrency, suffix: K, M e.g.: --win_size=10k.
+Default 10k.</dd>
+<dt>-X, --fixed_size=</dt>
+<dd>Fixed length of value.</dd>
+<dt>-v, --verify=</dt>
+<dd>The proportion of date verification, e.g.: --verify=0.01</dd>
+<dt>-d, --division=</dt>
+<dd>Number of keys to multi-get once. Default 1, means single get.</dd>
+<dt>-S, --stat_freq=</dt>
+<dd>Frequency of dumping statistic information. suffix: s-seconds,
+m-minutes, e.g.: --resp_freq=10s.</dd>
+<dt>-e, --exp_verify=</dt>
+<dd>The proportion of objects with expire time, e.g.: --exp_verify=0.01.
+Default no object with expire time</dd>
+<dt>-o, --overwrite=</dt>
+<dd>The proportion of objects need overwrite, e.g.: --overwrite=0.01.
+Default never overwrite object.</dd>
 </dl>
-<dl class="option-list">
-<dt><kbd><span class="option">-b</span>, <span class="option">--verbose</span></kbd></dt>
-<dd><p>Whether it outputs detailed information when verification fails.</p>
-</dd>
-<dt><kbd><span class="option">-h</span>, <span class="option">--help</span></kbd></dt>
-<dd><p>Display this message and then exit.</p>
-</dd>
-<dt><kbd><span class="option">-V</span>, <span class="option">--version</span></kbd></dt>
-<dd><p>Display the version of the application and then exit.</p>
-</dd>
+<table class="docutils option-list" frame="void" rules="none">
+<col class="option" />
+<col class="description" />
+<tbody valign="top">
+<tr><td class="option-group" colspan="2">
+<kbd><span class="option">-R</span>, <span class="option">--reconnect</span></kbd></td>
+</tr>
+<tr><td>&#160;</td><td>Reconnect tests, when connection is closed it will be reconnected.</td></tr>
+<tr><td class="option-group">
+<kbd><span class="option">-U</span>, <span class="option">--udp</span></kbd></td>
+<td>UDP tests, default memaslap uses TCP, TCP port and UDP port of
+server must be same.</td></tr>
+<tr><td class="option-group">
+<kbd><span class="option">-a</span>, <span class="option">--facebook</span></kbd></td>
+<td>Whether it enables facebook test feature, set with TCP and multi-get with UDP.</td></tr>
+<tr><td class="option-group">
+<kbd><span class="option">-B</span>, <span class="option">--binary</span></kbd></td>
+<td>Whether it enables binary protocol. Default with ASCII protocol.</td></tr>
+</tbody>
+</table>
+<dl class="docutils">
+<dt>-P, --tps=</dt>
+<dd>Expected throughput, suffix: K, e.g.: --tps=10k.</dd>
+<dt>-p, --rep_write=</dt>
+<dd>The first nth servers can write data, e.g.: --rep_write=2.</dd>
 </dl>
+<table class="docutils option-list" frame="void" rules="none">
+<col class="option" />
+<col class="description" />
+<tbody valign="top">
+<tr><td class="option-group">
+<kbd><span class="option">-b</span>, <span class="option">--verbose</span></kbd></td>
+<td>Whether it outputs detailed information when verification fails.</td></tr>
+<tr><td class="option-group">
+<kbd><span class="option">-h</span>, <span class="option">--help</span></kbd></td>
+<td>Display this message and then exit.</td></tr>
+<tr><td class="option-group">
+<kbd><span class="option">-V</span>, <span class="option">--version</span></kbd></td>
+<td>Display the version of the application and then exit.</td></tr>
+</tbody>
+</table>
 </div>
 <div class="section" id="examples">
 <h2>EXAMPLES<a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h2>
@@ -1088,10 +1004,10 @@ server must be same.</p>
   
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
       
-        <a href="memstat.html" class="btn btn-neutral float-right" title="memstat - Gather statistics from a server" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
+        <a href="memslap.html" class="btn btn-neutral float-right" title="memslap" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
       
       
-        <a href="memslap.html" class="btn btn-neutral float-left" title="memslap - Load testing and benchmarking a server" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+        <a href="memrm.html" class="btn btn-neutral float-left" title="memrm" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
       
     </div>