May 22, 2012

Optimizing SnapMirror performance

By default, the Snapmirror tcp window size is 1,994,752 bytes. In environments where SnapMirror is used to replicate data using a WAN link, then this setting can actually slow down your replication process. It is important to calculate the appropriate TCP window setting and set it accordingly. Neil Carpenter has a good post on calculating the TCP window size. Basically, it boils down to this:

Window Size = Round Trip Delay X Desired Rate

So if you have a 10Mbps network and the average RTD is 100ms, the window size should be 125,000 bytes.

A couple of points to note about this TCP Window size:

  1. It is a minimal theoretical window used by SnapMirror and may not be the most optimal window. Try a few variations around this number to figure a good one
  2. This option sets the TCP window size for all SnapMirror connections. For connection specific window, use the wsize option in the /etc/snapmirror.conf file to specify the window size.
  3. This option needs to be set on the destination filer.

Another option that might aid in the tuning is to enable this option

Options snapmirror.delayed_acks.enable off

This setting turns off the TCP/IP delayed acknowledgments. In high latency networks, this might be beneficial. By default, this option is turned on.

Comments

  1. Jack says:

    So how do you change the default snapmirror TCP window size? Is it a priv set diag command? A file you have to edit on the filer? A hidden option command?

  2. On the console, issue the command “options snapmirror.window_size X” where X is the window size in bytes.

  3. Jack says:

    Thanks Rajeev. You might want to consider editing your article to include that information?

    Regards,

Trackbacks

  1. [...] what I call the Part I of the blog post on this topic, we discussed setting the TCP window size to optimal setting to [...]

Speak Your Mind

*