/usr/share/doc/drbd-doc/users-guide/s-throughput-tuning.html is in drbd-doc 8.4~20140825-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>15.3. Tuning recommendations</title><link rel="stylesheet" type="text/css" href="default.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.78.1" /><link rel="home" href="drbd-users-guide.html" title="The DRBD User’s Guide" /><link rel="up" href="ch-throughput.html" title="Chapter 15. Optimizing DRBD throughput" /><link rel="prev" href="s-throughput-overhead-expectations.html" title="15.2. Throughput overhead expectations" /><link rel="next" href="ch-latency.html" title="Chapter 16. Optimizing DRBD latency" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">15.3. Tuning recommendations</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="s-throughput-overhead-expectations.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Optimizing DRBD throughput</th><td width="20%" align="right"> <a accesskey="n" href="ch-latency.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="s-throughput-tuning"></a>15.3. Tuning recommendations</h2></div></div></div><p>DRBD offers a number of configuration options which may have an effect
on your system’s throughput. This section list some recommendations
for tuning for throughput. However, since throughput is largely
hardware dependent, the effects of tweaking the options described here
may vary greatly from system to system. It is important to understand
that these recommendations should not be interpreted as "silver
bullets" which would magically remove any and all throughput
bottlenecks.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="s-tune-max-buffer-max-epoch-size"></a>15.3.1. Setting <code class="literal">max-buffers</code> and <code class="literal">max-epoch-size</code></h3></div></div></div><p>These options affect write performance on the secondary
node. <code class="literal">max-buffers</code> is the maximum number of buffers DRBD allocates for
writing data to disk while <code class="literal">max-epoch-size</code> is the maximum number of
write requests permitted between two write barriers. <code class="literal">max-buffers</code> must be
equal or bigger to <code class="literal">max-epoch-size</code> to increase performance.
The default for both is 2048; setting it to around
8000 should be fine for most reasonably high-performance hardware RAID
controllers.</p><pre class="programlisting">resource <resource> {
net {
max-buffers 8000;
max-epoch-size 8000;
...
}
...
}</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="s-tune-unplug-watermark"></a>15.3.2. Tweaking the I/O unplug watermark</h3></div></div></div><p>The I/O unplug watermark is a tunable which affects how often the I/O
subsystem’s controller is "kicked" (forced to process pending I/O
requests) during normal operation. There is no universally recommended
setting for this option; this is greatly hardware dependent.</p><p>Some controllers perform best when "kicked" frequently, so for these
controllers it makes sense to set this fairly low, perhaps even as low
as DRBD’s allowable minimum (16). Others perform best when left alone;
for these controllers a setting as high as <code class="literal">max-buffers</code> is advisable.</p><pre class="programlisting">resource <resource> {
net {
unplug-watermark 16;
...
}
...
}</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="s-tune-sndbuf-size"></a>15.3.3. Tuning the TCP send buffer size</h3></div></div></div><p>The TCP send buffer is a memory buffer for outgoing TCP traffic. By
default, it is set to a size of 128 KiB. For use in high-throughput
networks (such as dedicated Gigabit Ethernet or load-balanced bonded
connections), it may make sense to increase this to a size of 512 KiB,
or perhaps even more. Send buffer sizes of more than 2 MiB are
generally not recommended (and are also unlikely to produce any
throughput improvement).</p><pre class="programlisting">resource <resource> {
net {
sndbuf-size 512k;
...
}
...
}</pre><p>DRBD also supports TCP send buffer auto-tuning. After enabling this
feature, DRBD will dynamically select an appropriate TCP send buffer
size. TCP send buffer auto tuning is enabled by simply setting the
buffer size to zero:</p><pre class="programlisting">resource <resource> {
net {
sndbuf-size 0;
...
}
...
}</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="s-tune-al-extents"></a>15.3.4. Tuning the Activity Log size</h3></div></div></div><p>If the application using DRBD is write intensive in the sense that it
frequently issues small writes scattered across the device, it is
usually advisable to use a fairly large activity log. Otherwise,
frequent metadata updates may be detrimental to write performance.</p><pre class="programlisting">resource <resource> {
disk {
al-extents 3389;
...
}
...
}</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="s-tune-disable-barriers"></a>15.3.5. Disabling barriers and disk flushes</h3></div></div></div><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="images/warning.png" /></td><th align="left">Warning</th></tr><tr><td align="left" valign="top"><p>The recommendations outlined in this section should be applied
<span class="emphasis"><em>only</em></span> to systems with non-volatile (battery backed) controller caches.</p></td></tr></table></div><p>Systems equipped with battery backed write cache come with built-in
means of protecting data in the face of power failure. In that case,
it is permissible to disable some of DRBD’s own safeguards created for
the same purpose. This may be beneficial in terms of throughput:</p><pre class="programlisting">resource <resource> {
disk {
disk-barrier no;
disk-flushes no;
...
}
...
}</pre></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="s-throughput-overhead-expectations.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch-throughput.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch-latency.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">15.2. Throughput overhead expectations </td><td width="20%" align="center"><a accesskey="h" href="drbd-users-guide.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 16. Optimizing DRBD latency</td></tr></table></div></body></html>
|