--merge_write_enabled
Функция Merge (опция --merge_write_enabled) может улучшить работу с маленькими блоками, намеренно устанавливая некоторое время ожидания для запросов на запись, в течение которого запрос не передаётся на диски. Последовательные запросы объединяются, что позволяет существенно сократить количество операций для обработки запросов на синдромных RAID, так как сокращается количество операций read-modify-write. Однако, если запись случайная, то такое ожидание не позволит объединить запросы, отрицательно влияя на производительность RAID.
При последовательной записи маленькими блоками и большом количестве потоков рекомендуем включать Merge при помощи опции --merge_write_enabled.
Поскольку время получения I/O зависит от интенсивности нагрузки, размера и других параметров, для лучшей работы объединения запросов может потребоваться изменение опций --merge_wait и --merge_max. Как правило, для больших размеров I/O требуются большие значения этих опций.
Для работы функции необходимо выполнение условия
data_drives * strip_size ≤ 1024
где
- «data_drives» – количество выделенных под данные дисков в RAID (для RAID 5, 6 или 7.3) или в одной группе RAID (для RAID 50, 60 или 70);
- «strip_size» – выбранное для RAID значение стрипа (значение strip_size) в KiB.
Значение «data_drives» в зависимости от уровня RAID:
| Уровень RAID | Значение data_drives |
|---|---|
| RAID 5 |
Количество дисков в RAID минус 1 |
| RAID 6 |
Количество дисков в RAID минус 2 |
| RAID 7.3 |
Количество дисков в RAID минус 3 |
| RAID N+M |
Количество дисков в RAID минус M |
| RAID 50 |
Количество дисков в одной группе RAID минус 1 |
| RAID 60 |
Количество дисков в одной группе RAID минус 2 |
| RAID 70 |
Количество дисков в одной группе RAID минус 3 |
Если заранее известно, что глубины очереди пользовательской нагрузки и размера блока недостаточно, чтобы накопить на целый страйп, то Merge включать не рекомендуется. Другими словами, Merge стоит включить, если
iodepth * block_size >= data_drives * strip_size
где «block_size» – размер блока RAID (значение block_size в параметрах RAID) в KiB.