Изменения

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

628 байтов добавлено, 13:28, 23 октября 2018
Нет описания правки
* IOPS на запись через rados bench в режиме, соответствующем RBD (4 Кб блоки в 4 Мб объектах, 128 параллельных запросов) — нетранзакционной нагрузке:<br /> {{Cmd|1=rados bench -p ваш_пул -t 128 -b 4096 -o $((4096*1024)) 60 write}}
* То же самое с транзакционной нагрузкой (например, СУБД): {{Cmd|1=rados bench -p ваш_пул -t 1 -b 4096 -o $((4096*1024)) 60 write}}
*: ''Примечание: способ признан плохим, так как оказалось, что rados bench в 1 поток создаёт всего лишь несколько объектов для тестирования — запись получается не очень-то «случайной».''
* Тем же самым fio через ioengine=rbd (здесь fdatasync не нужен): {{Cmd|1=fio -ioengine=rbd -direct=1 -invalidate=1 -name=test -bs=4k -iodepth=128 -rw=randwrite -pool=rpool_hdd -runtime=60 -rbdname=testimg}}
* Встроенной утилитой {{Cmd|rbd bench --io-size 4096 --io-threads 64 --io-total 10G --io-pattern rand --io-type write rpool_hdd/testimg}}
* Можно тестировать и fio изнутри виртуалки, rbd драйвер нормально создаёт параллельную нагрузку — проверено.
* Производительность может отличаться на заполненном и незаполненном RBD-образе. Но отличия небольшие, думать, что там будет разница в несколько раз — не нужно.
* При тестировании случайной записи в ceph в один поток (fsync/fdatasync/sync/iodepth=1/rados bench -t 1) вы фактически всё время тестируете ОДИН диск. То есть, всё время тестируются разные диски, но в каждый отдельный момент времени запрос идёт '''только к одной placement group''' (тройке-четвёрке-пятёрке дисков).
* Соответственно, вы '''не увидите''' 100 % утилизации дисков на хостах при тестировании в один поток, однопоточная нагрузка '''не может''' полностью загрузить кластер.