framework icon indicating copy to clipboard operation
framework copied to clipboard

Optimize settings for sustainable write throughput

Open saelbrec opened this issue 7 years ago • 14 comments

Tests have shown that the currently configured default settings on a vpool do not allow to guarantee a sustainable write throughput. In certain tests it quickly degrades over a time window of 24hrs. The following graph shows on the left half test results with the default values, where as the right half shows test results with optimized volumedriver config values for number_of_scos_in_tlog and non_disposable_scos_factor

write_test

At vpool creation time there are 3 factors to take into account.

  1. SCOsize can be (4,8,16,32,64,128 MiB)
  2. number_of_scos_in_tlog has a default of 4 and is recalculated behind the scenes.
  3. non_disposable_scos_factor, decided upon behind the scenes based on the chosen volume writebuffer size. Formula: volume writebuffer = SCOsize * number_of_scos_in_tlog * non_disposable_scos_factor

Constraints we should implement to make sure we configure better balanced values:

  • Enforce non_disposable_scos_factor >= 1,5. If smaller advise to either decrease SCOsize or increase volume writebuffer as a value to close to 1 would lead to choking.
  • If based on volume writebuffer, SCOsize and number_of_scos_in_tlog(default=4) the non_disposable_scos_factor > 4.0 , we should increase the number_of_scos_in_tlog to maximum the equivalent of 256MiB of data(256MiB/SCOSizeInMiB=number_of_scos_in_tlog) and then use that value to recalculate the non_disposable_scos_factor.

saelbrec avatar Jun 23 '17 08:06 saelbrec