From b8a17344650d9f4504403b179468d841bdbb9b7c Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sat, 29 Jul 2023 14:42:56 +0300 Subject: [PATCH] Reword checksum docs one more time --- docs/config/layout-osd.en.md | 21 +++++++++-------- docs/config/layout-osd.ru.md | 21 +++++++---------- docs/config/src/layout-osd.yml | 42 +++++++++++++++------------------- 3 files changed, 38 insertions(+), 46 deletions(-) diff --git a/docs/config/layout-osd.en.md b/docs/config/layout-osd.en.md index b0fd7527..72289d03 100644 --- a/docs/config/layout-osd.en.md +++ b/docs/config/layout-osd.en.md @@ -197,21 +197,22 @@ Must be equal or a multiple of [bitmap_granularity](layout-cluster.en.md#bitmap_ Checksums increase metadata size by 4 bytes per each csum_block_size of data. -Checksums are always a compromise: +Checksums are always a tradeoff: 1. You either sacrifice +1 GB RAM per 1 TB of data 2. Or you raise csum_block_size, for example, to 32k and sacrifice 50% random write iops due to checksum read-modify-write 3. Or you turn off [inmemory_metadata](osd.en.md#inmemory_metadata) and sacrifice 50% random read iops due to checksum reads -Option 1 (default) is recommended for all-flash setups because these usually -have enough RAM. +All-flash clusters usually have enough RAM to use default csum_block_size, +which uses 1 GB RAM per 1 TB of data. HDD clusters usually don't. -Option 2 is recommended for HDD-only setups. HDD-only setups usually do NOT -have enough RAM for the default 4 KB csum_block_size. +Thus, recommended setups are: +1. All-flash, 1 GB RAM per 1 TB data: default (csum_block_size=4k) +2. All-flash, less RAM: csum_block_size=4k + inmemory_metadata=false +3. Hybrid HDD+SSD: csum_block_size=4k + inmemory_metadata=false +4. HDD-only, faster random read: csum_block_size=32k +5. HDD-only, faster random write: csum_block_size=4k + + inmemory_metadata=false + cached_io_meta=true -Option 3 is recommended for SSD+HDD setups (because metadata SSDs will handle -extra reads without any performance drop) and also *maybe* for NVMe all-flash -setups when you don't have enough RAM (because NVMe drives have plenty -of read iops to spare). [cached_io_meta](osd.en.md#cached_io_meta) may also -help to improve performance in this case for SSD+HDD setups. +See also [cached_io_meta](osd.en.md#cached_io_meta). diff --git a/docs/config/layout-osd.ru.md b/docs/config/layout-osd.ru.md index 49847580..a65ea379 100644 --- a/docs/config/layout-osd.ru.md +++ b/docs/config/layout-osd.ru.md @@ -220,17 +220,12 @@ csum_block_size данных. жертвуете 50% скорости случайного чтения из-за чтения контрольных сумм с диска -Вариант 1 (при настройках по умолчанию) рекомендуется для SSD (All-Flash) -кластеров, потому что памяти в них обычно хватает. +Таким образом, рекомендуются следующие варианты настроек: +1. All-flash, 1 ГБ памяти на 1 ТБ данных: по умолчанию (csum_block_size=4k) +2. All-flash, меньше памяти: csum_block_size=4k + inmemory_metadata=false +3. Гибридные HDD+SSD: csum_block_size=4k + inmemory_metadata=false +4. Только HDD, быстрее случайное чтение: csum_block_size=32k +5. Только HDD, быстрее случайная запись: csum_block_size=4k + + inmemory_metadata=false + cached_io_meta=true -Вариант 2 рекомендуется для кластеров на одних жёстких дисках (без SSD -под метаданные). На 4 кб блок контрольной суммы памяти в таких кластерах -обычно НЕ хватает. - -Вариант 3 рекомендуется для гибридных кластеров (SSD+HDD), потому что -скорости SSD под метаданными хватит, чтобы обработать дополнительные чтения -без снижения производительности. Также вариант 3 *может* рекомендоваться -для All-Flash кластеров на основе NVMe-дисков, когда памяти НЕ достаточно, -потому что NVMe-диски имеют огромный запас производительности по чтению. -Также улучшить производительность для SSD+HDD кластеров в данном случае -может помочь параметр [cached_io_meta](osd.ru.md#cached_io_meta). +Смотрите также [cached_io_meta](osd.ru.md#cached_io_meta). diff --git a/docs/config/src/layout-osd.yml b/docs/config/src/layout-osd.yml index 4b97fd09..cdda04a9 100644 --- a/docs/config/src/layout-osd.yml +++ b/docs/config/src/layout-osd.yml @@ -228,24 +228,25 @@ Checksums increase metadata size by 4 bytes per each csum_block_size of data. - Checksums are always a compromise: + Checksums are always a tradeoff: 1. You either sacrifice +1 GB RAM per 1 TB of data 2. Or you raise csum_block_size, for example, to 32k and sacrifice 50% random write iops due to checksum read-modify-write 3. Or you turn off [inmemory_metadata](osd.en.md#inmemory_metadata) and sacrifice 50% random read iops due to checksum reads - Option 1 (default) is recommended for all-flash setups because these usually - have enough RAM. + All-flash clusters usually have enough RAM to use default csum_block_size, + which uses 1 GB RAM per 1 TB of data. HDD clusters usually don't. - Option 2 is recommended for HDD-only setups. HDD-only setups usually do NOT - have enough RAM for the default 4 KB csum_block_size. + Thus, recommended setups are: + 1. All-flash, 1 GB RAM per 1 TB data: default (csum_block_size=4k) + 2. All-flash, less RAM: csum_block_size=4k + inmemory_metadata=false + 3. Hybrid HDD+SSD: csum_block_size=4k + inmemory_metadata=false + 4. HDD-only, faster random read: csum_block_size=32k + 5. HDD-only, faster random write: csum_block_size=4k + + inmemory_metadata=false + cached_io_meta=true - Option 3 is recommended for SSD+HDD setups (because metadata SSDs will handle - extra reads without any performance drop) and also *maybe* for NVMe all-flash - setups when you don't have enough RAM (because NVMe drives have plenty - of read iops to spare). [cached_io_meta](osd.en.md#cached_io_meta) may also - help to improve performance in this case for SSD+HDD setups. + See also [cached_io_meta](osd.en.md#cached_io_meta). info_ru: | Размер блока расчёта контрольных сумм. @@ -264,17 +265,12 @@ жертвуете 50% скорости случайного чтения из-за чтения контрольных сумм с диска - Вариант 1 (при настройках по умолчанию) рекомендуется для SSD (All-Flash) - кластеров, потому что памяти в них обычно хватает. + Таким образом, рекомендуются следующие варианты настроек: + 1. All-flash, 1 ГБ памяти на 1 ТБ данных: по умолчанию (csum_block_size=4k) + 2. All-flash, меньше памяти: csum_block_size=4k + inmemory_metadata=false + 3. Гибридные HDD+SSD: csum_block_size=4k + inmemory_metadata=false + 4. Только HDD, быстрее случайное чтение: csum_block_size=32k + 5. Только HDD, быстрее случайная запись: csum_block_size=4k + + inmemory_metadata=false + cached_io_meta=true - Вариант 2 рекомендуется для кластеров на одних жёстких дисках (без SSD - под метаданные). На 4 кб блок контрольной суммы памяти в таких кластерах - обычно НЕ хватает. - - Вариант 3 рекомендуется для гибридных кластеров (SSD+HDD), потому что - скорости SSD под метаданными хватит, чтобы обработать дополнительные чтения - без снижения производительности. Также вариант 3 *может* рекомендоваться - для All-Flash кластеров на основе NVMe-дисков, когда памяти НЕ достаточно, - потому что NVMe-диски имеют огромный запас производительности по чтению. - Также улучшить производительность для SSD+HDD кластеров в данном случае - может помочь параметр [cached_io_meta](osd.ru.md#cached_io_meta). + Смотрите также [cached_io_meta](osd.ru.md#cached_io_meta).