This guide describes DRBD version 8.4.x. For 9.0 please look here(8.3).

6.10. Configuring the rate of synchronization

Normally, one tries to ensure that background synchronization (which makes the data on the synchronization target temporarily inconsistent) completes as quickly as possible. However, it is also necessary to keep background synchronization from hogging all bandwidth otherwise available for foreground replication, which would be detrimental to application performance. Thus, you must configure the synchronization bandwidth to match your hardware — which you may do in a permanent fashion or on-the-fly.


It does not make sense to set a synchronization rate that is higher than the maximum write throughput on your secondary node. You must not expect your secondary node to miraculously be able to write faster than its I/O subsystem allows, just because it happens to be the target of an ongoing device synchronization.

Likewise, and for the same reasons, it does not make sense to set a synchronization rate that is higher than the bandwidth available on the replication network.

6.10.1. Variable sync rate configuration

Since DRBD 8.4, the default has switched to variable-rate synchronization. In this mode, DRBD uses an automated control loop algorithm to determine, and permanently adjust, the synchronization rate. This algorithm ensures that there is always sufficient bandwidth available for foreground replication, greatly mitigating the impact that background synchronization has on foreground I/O.

The optimal configuration for variable-rate synchronization may vary greatly depending on the available network bandwidth, application I/O pattern and link congestion. Ideal configuration settings also depend on whether DRBD Proxy is in use or not. It may be wise to engage professional consultancy in order to optimally configure this DRBD feature. An example configuration (which assumes a deployment in conjunction with DRBD Proxy) is provided below:

resource <resource> {
  disk {
    c-plan-ahead 200;
    c-max-rate 10M;
    c-fill-target 15M;

A good starting value for c-fill-target is BDP✕3, where BDP is your bandwidth delay product on the replication link.

6.10.2. Permanent fixed sync rate configuration

For testing purposes it might be useful to deactivate the dynamic resync controller, and to configure DRBD to some fixed resynchronization speed. That is only an upper limit, of course - if there is some bottleneck (or just application IO), the desired speed won’t be achieved.

The maximum bandwidth a resource uses for background re-synchronization is determined by the rate option for a resource. This must be included in the resource configuration’s disk section in /etc/drbd.conf:

resource <resource>
  disk {
    resync-rate 40M;

Note that the rate setting is given in bytes, not bits per second; the default unit is Kibibyte, so a value of 4096 would be interpreted as 4MiB.


A good rule of thumb for this value is to use about 30% of the available replication bandwidth. Thus, if you had an I/O subsystem capable of sustaining write throughput of 180MB/s, and a Gigabit Ethernet network capable of sustaining 110 MB/s network throughput (the network being the bottleneck), you would calculate:

Figure 6.1. Syncer rate example, 110MB/s effective available bandwidth


Thus, the recommended value for the rate option would be 33M.

By contrast, if you had an I/O subsystem with a maximum throughput of 80MB/s and a Gigabit Ethernet connection (the I/O subsystem being the bottleneck), you would calculate:

Figure 6.2. Syncer rate example, 80MB/s effective available bandwidth


In this case, the recommended value for the rate option would be 24M.

6.10.3. Temporary fixed sync rate configuration

It is sometimes desirable to temporarily adjust the sync rate. For example, you might want to speed up background re-synchronization after having performed scheduled maintenance on one of your cluster nodes. Or, you might want to throttle background re-synchronization if it happens to occur at a time when your application is extremely busy with write operations, and you want to make sure that a large portion of the existing bandwidth is available to replication.

For example, in order to make most bandwidth of a Gigabit Ethernet link available to re-synchronization, issue the following command:

# drbdadm disk-options --c-plan-ahead=0 --resync-rate=110M <resource>

You need to issue this command on the SyncTarget node.

To revert this temporary setting and re-enable the synchronization rate set in /etc/drbd.conf, issue this command:

# drbdadm adjust <resource>

This guide describes DRBD version 8.4.x. For 9.0 please look here(8.3).