Изменения

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

49 байтов добавлено, 17:22, 22 октября 2019
м
Оценка производительности кластера
== Оценка производительности кластера ==
Оценка производительности кластера просто по спецификациям входящих в него дисков - дисков — абсолютно неправильна.
Речь о Bluestore. Под iops понимаются iops случайного чтения/записи блоками по 4 кб.
1 HDD (обычный, 7200 rpm, не SMR, без ssd-кэша) -  — это:
* ~100-120 iops при QD=128
* ~66 iops при QD=1
* ~40 MB/s линейного чтения/записи
* При недостатке памяти показатели будут хуже, т.к. так как будут cache miss по метаданным
1 быстрый SSD или NVMe SSD (с конденсаторами, write iops >= 25000):
* Максимум до ~10000-20000 iops на запись при QD=128 на 1 OSD.
* На чтение показатели примерно в 2-2.5 раза лучше: QD=1 ~2000 iops (максимум до ~4000), QD=128 ~20000, максимум до 50000.
* Естественно, показатель QD=128 не может быть больше, чем показатель самого диска :). Но т.к. так как хорошие SSD в параллельном режиме обычно быстрые - быстрые — это не замечаешь.
* Создав несколько OSD на одном диске, можно умножить число QD=128 iops на число OSD. Естественно, ценой аналогичного увеличения жора CPU.
* Скорость линейного чтения/записи примерно равна скорости линейного чтения/записи самого диска.
* Кардинальной разницы по iops между SATA SSD и даже NVMe, если у обоих есть конденсаторы - конденсаторы — нет. Это не отменяет того, что NVMe лучше, но на случайном доступе это заметить трудно.* На актуальных SSD чтение QD=1 часто бывает медленнее записи QD=1, т.к. так как писать можно в быстрый кэш, а читать можно только из реальной памяти. Разница бывает примерно такая: на чтение при QD=1 8000 iops, а на запись 40000 iops.
Итоговые показатели:
* Линейная запись в реплицированный пул = Число OSD / Репликация * MB/s одного OSD
* Линейная запись в EC-пул = Число OSD / (K+M) * K * MB/s одного OSD
* С iops всё сложнее, т.к. так как репликация вносит нелинейный эффект в масштабирование. Но, условно говоря:** iops QD=1 - 1 — усредняются по всем OSD, а iops QD=128 - 128 — суммируются
** При этом на 1 RBD клиента можно получить лишь до ~30000 iops на чтение и ~15000 iops на запись
* Естественно, если что-то упираетесь в сеть - сеть — соответствующая цифра обрезается показателем сети
== Картина маслом «Тормозящий кэш» ==