Изменения

м
Нет описания правки
== Преамбула ==
Особенность Ceph — Ceph — то, что вся запись (даже та, для которой никто этого явно не просит) ведётся транзакционно.
В силу этого IOPS-ы при записи мелкими блоками, то бишь при OLTP-применении, страдают. В силу этого же тестировать производительность дисков нужно обязательно с опцией fdatasync=1.
И в силу этого же полезно использовать либо SSD с энергонезависимым внутренним кэшем (называется «Расширенная защита от потери данных при отключении питания», в основном это «энтерпрайзные» модели, в данном тесте это Intel DC3500 и Intel 320), либо (гипотеза — гипотеза — как раз её и проверяем) подключение через RAID контроллер.
IOPS-ы при разных способах подключения различаются '''драматически''' (и упорото — упорото — по-разному). Ниже приведены некоторые результаты тестирования.
Все тесты запускались утилитой fio с параметрами: {{Cmd|1=fio -ioengine=libaio -fdatasync=1 -direct=1 -invalidate=1 -name=test -bs=4k -size=10G -iodepth=16 -rw=randwrite -filename=/dev/sdX}} (то есть, случайная запись блоками по 4 килобайта в обход кэша ОС (direct и invalidate) и в транзакционном режиме (fdatasync)).
Протестированные виды подключения:
* Через контроллер Adaptec 6805 с ZMM (конденсатором):
** RAID volume из одного диска. В этом случае доступны две настройки: внутренний кэш диска — диска — вкл/выкл и кэш контроллера — контроллера — вкл/выкл.** JBOD из одного диска. В этом случае доступна одна настройка: внутренний кэш диска — диска — вкл/выкл.* Через SATA контроллер обычной десктопной материнской платы. Доступна одна настройка: внутренний кэш диска — диска — вкл/выкл (через утилиту hdparm -W).
== Результаты тестирования ==
== Выводы ==
* Оптимальный способ подключения серверных SSD — SSD — SATA с выключенным кэшем (hdparm -W 0 /dev/sdX), либо SAS RAID контроллер с обоими отключенными кэшами (arcconf setcache 1 device 0 5 wt && arcconf setcache 1 logicaldrive 5 wt). SATA лучше, так как в этом случае поддерживается TRIM (хотя в нём серверные SSD и не нуждаются), а RAID-контроллер точно не может быть узким местом.* Оптимальный способ подключения дешёвых настольных SSD — SSD — SAS RAID контроллер с включённым кэшем диска и выключенным (write-through) кэшем RAID-контроллера.
* При подключении через RAID контроллер и включении обоих кэшей записи IOPS-ы получается некоторая гарантированно неплохая скорость. «Гарантированная» в том смысле, что не сильно зависит от модели SSD, так как упирается в скорость работы самого контроллера.
* Способа обеспечить нормальные IOPS-ы на запись с Ceph два:
* На серверных SSD внутренний кэш записи может тормозить транзакционную запись. Отсюда 7000 на DC3500.
* На дешёвых SSD внутренний кэш записи помогает транзакционной записи, но не сильно. Отсюда 2600/800 на 545s и 5000 на X25.
* На дешёвых SSD при выключенном внутреннем кэше записи скорость '''не'''транзакционной записи сильно проседает, в итоге, даже если включить RAID-кэш — кэш — остаются тормоза, так как кэш не успевает сбрасываться на диск. Отсюда 1100 на X25 и 545s в режиме, когда включён только RAID-кэш.* Самая большая загадка — загадка — почему дешёвые SSD быстрые в режиме Write-Through (выключенного) RAID кэша при включенном внутреннем? Ответ может быть только один — один — в Write-Through («как бы отключённый»отключённом») режим режиме кэша контроллер тоже защищается батарейкой контроллераигнорирует запросы fsync. Остаётся только надеяться, что «Write-Through» фактически означает «записать в кэш, подтвердить запись и сразу передать на диск» — в этом случае при отключении питания данные всё-таки останутся в кэше и при следующем включении доедут до назначения. А вот если WT означает «пишем мимо кэша», то это просто отключение транзакционности и при отключении питания данные, скорее всего, повредятся.
Примечания:
<references />
{{wl-publish: 2018-06-27 18:19:47 +0300 | VitaliyFilippov }}