Изменения

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

2128 байтов добавлено, 19:14, 10 ноября 2018
Нет описания правки
* Линейное чтение/запись (большими блоками)
* Случайное чтениеПиковая производительность высоко-параллельного случайного чтения/запись (транзакционное и записи мелкими блоками)* Однопоточная нагрузкаЗадержка однопоточного случайного чтения мелкими блоками (4-8 Кб)* Параллельная нагрузкаЗадержка однопоточной транзакционной записи мелкими блоками (4-8 Кб) — обычно последовательной, как в журнал СУБД, но в один поток это обычно слабо отличается от случайной Задержки часто важнее простой пиковой производительности случайного чтения/записи, так как далеко не каждое приложение может загрузить диск при большом параллелизме / глубокой очереди (32-128 запросов). Ceph — это SDS, его задержки всегда выше, чем у устройств при прямом доступе и от этого никуда не денешься. В интернете есть доклад Nick Fisk «Low-Latency Ceph», в его исполнении Low latency это 0.7ms, то есть на лучший результат рассчитывать особенно не приходится. 0.7ms — это всего лишь примерно ~1500 iops в 1 поток.
Сначала прогоните fio на голом диске:
* Перед тестированием отключите кэш записи диска: {{Cmd|hdparm -W 0 /dev/sdX}} (SATA-диски через SATA или HBA), {{Cmd|1=sdparm --set WCE=0 /dev/sdX}} (SAS-диски). Не совсем ясно, почему, но эта операция на серверных SSD может увеличить IOPS-ы на 2 порядка. Также см.ниже [[#Картина маслом «Тормозящий кэш»]].
* Линейное чтение: {{Cmd|1=fio -ioengine=libaio -direct=1 -invalidate=1 -name=test -bs=4M -iodepth=32 -rw=read -runtime=60 -filename=/dev/sdX}}
* Линейная запись: {{Cmd|1=fio -ioengine=libaio -fdatasync=1 -direct=1 -invalidate=1 -name=test -bs=4M -iodepth=32 -rw=write -runtime=60 -filename=/dev/sdX}}* Задержка случайного чтения: {{Cmd|1=fio -ioengine=libaio -sync=1 -direct=1 -invalidate=1 -name=test -bs=4k -iodepth=1 -rw=randread -runtime=60 -filename=/dev/sdX}}* Пиковые IOPSслучайного чтения: {{Cmd|1=fio -ы ioengine=libaio -direct=1 -invalidate=1 -name=test -bs=4k -iodepth=128 -rw=randread -runtime=60 -filename=/dev/sdX}}* Задержка записи в журнал: {{Cmd|1=fio -ioengine=libaio -sync=1 -direct=1 -invalidate=1 -name=test -bs=4k -iodepth=1 -rw=write -runtime=60 -filename=/dev/sdX}}* Задержка случайной записи: {{Cmd|1=fio -ioengine=libaio -fdatasyncsync=1 -direct=1 -invalidate=1 -name=test -bs=4k -iodepth=128 1 -rw=randwrite -runtime=60 -filename=/dev/sdX}}* Пиковые IOPS случайной записи: {{Cmd|1=fio -ioengine=libaio -direct=1 -invalidate=1 -name=test -bs=4k -iodepth=128 -rw=randread -runtime=60 -filename=/dev/sdX}}
«А почему так мало…» — см.ниже.