Изменения

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

27 байтов убрано, 19:41, 11 августа 2018
м
Нет описания правки
После сборки Ceph можно тестировать так:
* IOPS на запись через rados bench в режиме, соответствующем RBD (4 Кб блоки в 4 Мб объектах, 128 параллельных запросов) и 16 одновременно запущенных виртуалок — нетранзакционной нагрузке:<br /> {{Cmd|1=rados bench -p ваш_пул -t 16 128 -b 4096 -o $((4096*1024)) 60 write}}* Цифру 16 можно менять, скажемТо же самое с транзакционной нагрузкой (например, от СУБД): {{Cmd|1 до 128 =rados bench -p ваш_пул -t 1 -b 4096 -o $(1 — 4 — 16 — 64 — 128(4096*1024), чтобы понять, как меняются IOPS-ы при разной степени параллелизма) 60 write}}* Тем же самым fio через ioengine=rbd (здесь fdatasync не нужен): {{Cmd|1=fio -ioengine=rbd -direct=1 -invalidate=1 -name=test -bs=4k -iodepth=16 128 -rw=randwrite -pool=rpool_hdd -runtime=60 -rbdname=testimg}}
* В несколько потоков — добавить к fio опцию `-jobs=N`
* Можно тестировать и fio изнутри виртуалки, НО в этом случае помните, что параллельной нагрузки она не создаст — qemu . rbd драйвер работает в один потокнормально создаёт параллельную нагрузку — проверено.
* Производительность может отличаться на заполненном и незаполненном RBD-образе.
* При тестировании случайной записи в один поток (fsync/iodepth=1/rados bench -t 1) вы фактически всё время тестируете ОДИН диск. То есть, всё время тестируются разные диски, но в каждый отдельный момент времени запрос идёт '''только к одной placement group''' (тройке-четвёрке-пятёрке дисков).
* Соответственно, вы '''не увидите''' 100 % утилизации дисков на хостах при тестировании в один поток. Однопоточная нагрузка '''не может''' полностью загрузить кластер.