Изменения

Перейти к: навигация, поиск

Производительность Ceph

20 байтов добавлено, 12:32, 8 августа 2020
Нет описания правки
Из этого следует, что в идеале на разделе БД нужен ещё и запас в размере первого + последнего уровня БД. То есть примерно 30 ГБ превращаются в примерно 60.
Но что делать, если вам надо выделить под базы , например, по 30 50 ГБ? Делать SSD разделы по 550 ГБ как-то уж очень жирно, но и спилловеров иметь не хочется. В этом случае можно поменять базовый размер уровня RocksDB (max_bytes_for_level_base). multiplier менять не будем, оставим по умолчанию 10 — его значение влияет на итоговое количество уровней RocksDB, а это уже более тонкая материя. Теоретически, меньшее число уровней снижает read и space amplification, но замедляет compaction и из-за этого может сильно повысить итоговый write amplification. Также есть тема с уменьшением размера отдельных memtable и кратным увеличением общего их числа, то есть, например, установки 32*32 МБ вместо дефолтных 4*256 МБ и min_write_buffer_to_merge=8, но эффект от этого тоже не совсем понятен (возможно, немного экономится CPU при compaction-е), так что это тоже пока лучше не трогать.
Итак, помня про необходимость запаса под первый и последний уровни выводим, что общий размер раздела БД должен быть равен k*X, где X — размер первого уровня, а k — коэффициенты из ряда: 2 (1 уровень), 22 (2 уровня), 212 (под 3 уровня), 2112 (под 4 уровня) и т. п.
Соответственно, берём целевой максимальный размер нашей БД: 30 50 ГБ. Это будет размер последнего уровня. Делим его на 10 до тех пор, пока значение не приблизится где-то к гигабайту и принимаем это за размер первого уровня. Компактится база по 256 МБ за раз, так что меньше 256 МБ размер первого уровня ставить точно смысла нет. После этого число делений+1 принимаем за число уровней, домножаем размер первого уровня на соответствующий коэффициент, накидываем +1 ГБ для WAL, округляем чуть вверх и получаем необходимый размер раздела SSD. В случае с 30 50 ГБ — размер первого уровня будет 300 500 МБ, число уровней 3 и требуемый размер SSD раздела — около 65 106 ГБ. Прописываем это в конфигурацию (bluestore_rocksdb_options = …,max_bytes_for_level_base=300MB500MB), деплоим OSD и радуемся жизни. Ну, почти радуемся, так как 50 % этого раздела у нас используется только в момент компакшена, а остальное время простаивает…
== Снапшоты ==

Навигация