Изменения

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

115 байтов добавлено, 21:08, 12 ноября 2018
Нет описания правки
Важная особенность Ceph — ''вся запись, даже та, для которой никто этого явно не просит, ведётся транзакционно''. То есть, никакая операция записи не завершается, пока она не записана в журналы всех OSD и не сделан fsync() диска. Так сделано, чтобы предотвращать RAID WRITE HOLE-подобные ситуации рассинхронизации данных между репликами при отключении питания, потере сети и т.п…
При этом оптимизацией транзакций там, похоже, вообще никто нормально не занимался (все используют хорошие серверные SSD, которые болт клали на fsync) и поэтому при работе OSD sync-ов не то что столько же, сколько запросов записи — их даже БОЛЬШЕ (смешно, да). В таких условиях «deferred» операции превращаются не в deferred, а непонятно во что, поэтому понятия «асинхронности» там фактически никакого нет.
Всё это приводит к тому, что типичная настольная SSD в Ceph выдаёт '''неприлично низкие IOPS-ы''' — обычно от 500 до 2000. И это при том, что при обычном тестировании почти любая SSD выдаёт > 20000 iops. Даже самый паршивый китайский noname выдаёт не менее 10000 iops. NVMe легко выжимает 150000 и больше. Но стоит начать использовать fsync… и та же NVMe выдаёт 600 iops (на 2.5 порядка меньше).