Изменения

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

19 байтов добавлено, 22:53, 4 марта 2019
Нет описания правки
Вариант решения № 1: у наших HDD обнаруживается media cache, мы его включаем, получаем нормальную производительность и успокаиваемся (хотя осадочек-то остался). Вариант № 2: медиакэша у наших дисков нет и мы продолжаем ломать голову «почему ж так медленно-то».
Так вот. Журнала у блюстора собственного нет, вместо него RocksDB. Она Это как бы keyvalue база, но она же LSM, она же так и работает — типа до лимита пишет в память+журнал, потом когда упирается в лимит — делает compaction по уровням. По сути как бы БД-журнал. Вот они её как журнал и юзают. В той же RocksDB метаданные, и их дохрена, ибо виртуальные клоны и всякое такое. Плюс чексуммы. Плюс два варианта записи — прямой и отложенный.
Теорически Теоретически в этом ничего плохого нет. Наоборот, хорошо то, что и метаданные, и данные записываются 1 транзакцией.
Однако на практике (при просмотре strace) оказывается, что при записи 4к-блоками OSD демонстрируют фактор Write Amplification от 3 до 5 плюс делают огромное количество commit-ов. Запись делается двумя системными вызовами — pwritev и io_submit. Commit — тоже двумя, sync_file_range и fdatasync.