Adjusting the Volume Replicator (VVR) flow control algorithm with vol_rp_increment and vol_rp_decrement

book

Article ID: 100010696

calendar_today

Updated On:

Resolution

Adjusting the sliding-window algorithm is done by setting the values of vol_rp_increment and vol_rp_decrement. This only affects the performance of replication when UDP is the replication protocol. If TCP is used, VVR uses the built-in TCP flow control.

Increasing these values causes VVR to be less aggressive at reducing throughput in response to network timeouts. However, setting these values too high may result in a large number of unacknowledged packets and resends, reducing throughput. 

The default value for both vol_rp_increment and vol_rp_decrement is 8. The values of vol_rp_increment and vol_rp_decrement should both match. It is best to adjust the values according to the following intervals: 8, 16, 24, 40, 60. These are decimal values.

When adjusting the flow control, a typical "first step" is to increase the values to 16 and monitor the results. Then monitor performance to determine if further adjustment is appropriate.

The flow control values can be adjusted using vxtune:

vxtune vol_rp_increment

vxtune vol_rp_decrement

 

Beginning with Storage Foundation 6.0, these changes are permanent. In earlier versions, these changes are are not retained after reboots. After you have determined the optimal value of a tunable using vxtune, use the platform-specific interface to set persistent values for the tunables, such as adding a vxtune command to the startup scripts for the OS.

Note: The vxtune command only affects the tunable values on the  host  on  which it is run.  If required,  you must run the command separately on each host for which you want to change the tunable values (for example, for the log-owner node and any of its failover nodes in a cluster).

 

 

Issue/Introduction

Volume Replicator (VVR) uses a sliding-window algorithm to dynamically increase or decrease the amount of blocks that are sent from the primary to the secondary in response to network timeouts. In some environments, it is possible to improve performance by adjusting the algorithm.