Size: a a a

SDS и Кластерные FS

2021 January 26

N

Nikolay Kulikov in SDS и Кластерные FS
Виталий На Заборе
Ну типа 128 это вроде макс.размер очереди блокдевайса в линуксе по дефолту, у сата максимум 32, но на нвме бывает нужно побольше. А 16 по 4МБ обычно достаточно, чтобы загрузить диск линейно. Больше уже чуть тест тупить начинает, т.к много памяти выделяется на буферы, а меньше загрузить диск не всегда хватает
Это зависит от конфигурации стенда (сколько ВМ, хостов, etc), характеристик и типа хранилища, используемого железа и ещё миллионов параметров. Обычно если мы тестируем иммено схд синтетикой (т.е. Пытаемся понять возможности хранилища, а не воспроизводим наш профиль) снимают curve, что определить диапазоны недозагрузки, рабочий диапазон, перегрузку. Отсюда строится график iops+latency от iodepth, после чего очевидно сколько нужно потоков, чтобы загрузить хранилище. Часто этого достаточно. Если нужно совсем точно и занудно, то на выбираем iodepth c линейного участка на прошлом графике и начинаем менять iops rate - получаем график latency от iops. После чего отсекаем требуемый нам уровень latency (ибо это характеристика приложения, а не схд) и получаем число - сколько iops нам готово выдать хранилище при latency не превышающем порог
источник

ВН

Виталий На Заборе... in SDS и Кластерные FS
nikolay a
Почему, на мой взгляд автор затронул как вопросы связанные с измерением производительности одного диска с учетом наличия кэшей и понятия линейной нагрузки, так и прошелся по всем параметрам схд которые надо учитывать при организации тестов. причем сделано это языком, понятным достаточно среднему специалисту..
ну я задолбался читать =))
источник

ВН

Виталий На Заборе... in SDS и Кластерные FS
Nikolay Kulikov
Это зависит от конфигурации стенда (сколько ВМ, хостов, etc), характеристик и типа хранилища, используемого железа и ещё миллионов параметров. Обычно если мы тестируем иммено схд синтетикой (т.е. Пытаемся понять возможности хранилища, а не воспроизводим наш профиль) снимают curve, что определить диапазоны недозагрузки, рабочий диапазон, перегрузку. Отсюда строится график iops+latency от iodepth, после чего очевидно сколько нужно потоков, чтобы загрузить хранилище. Часто этого достаточно. Если нужно совсем точно и занудно, то на выбираем iodepth c линейного участка на прошлом графике и начинаем менять iops rate - получаем график latency от iops. После чего отсекаем требуемый нам уровень latency (ибо это характеристика приложения, а не схд) и получаем число - сколько iops нам готово выдать хранилище при latency не превышающем порог
да, я помню этот график, тут обсуждали уже возможно собственно с тобой
источник

N

Nikolay Kulikov in SDS и Кластерные FS
nikolay a
blktrace под linux. интересно есть ли что-то аналогичное под win..
Хоть и не реальные трейсы, но тот же liveoptics очень не плохо снимает оьобщенные данные (отношение чтения записи, размер блока, oio, etc)
источник

ВН

Виталий На Заборе... in SDS и Кластерные FS
накуренный график
источник

ВН

Виталий На Заборе... in SDS и Кластерные FS
я выступаю за график iops от iodepth
источник

ВН

Виталий На Заборе... in SDS и Кластерные FS
latency от iops это накур всё-таки
источник

ВН

Виталий На Заборе... in SDS и Кластерные FS
прикольно, но по сути та же информация с другого (довольно странного) угла
источник

ВН

Виталий На Заборе... in SDS и Кластерные FS
то есть он никакой новой информации по сравнению с iops от iodepth не несёт в себе
источник

N

Nikolay Kulikov in SDS и Кластерные FS
Виталий На Заборе
я выступаю за график iops от iodepth
Да, его Обычно good enough. Только latency надо построить ещё на этом же графике. Указание iops без latency - бесполезная информация
источник

ВН

Виталий На Заборе... in SDS и Кластерные FS
Nikolay Kulikov
Да, его Обычно good enough. Только latency надо построить ещё на этом же графике. Указание iops без latency - бесполезная информация
latency = iodepth / iops
источник

ВН

Виталий На Заборе... in SDS и Кластерные FS
iops = iodepth / latency
источник

ВН

Виталий На Заборе... in SDS и Кластерные FS
если его даже нет, его можно додумать))
источник

AK

Artemy Kapitula in SDS и Кластерные FS
Ну вот ты чутка неправ. Если нагрузка зажата QoSами то всё не так однозначно
источник

ВН

Виталий На Заборе... in SDS и Кластерные FS
Artemy Kapitula
Ну вот ты чутка неправ. Если нагрузка зажата QoSами то всё не так однозначно
вроде не так только если клиент неравномерно грузит. т.е. если клиент поддерживает фиксированный размер очереди - то это всегда верно
источник

ВН

Виталий На Заборе... in SDS и Кластерные FS
если клиент делает паузы между операциями - то неверно, да
источник

ВН

Виталий На Заборе... in SDS и Кластерные FS
т.е. если сам fio делает паузы то неверно. если скажем librbd делает, то это фиолетово и формула всё равно верна
источник

ВН

Виталий На Заборе... in SDS и Кластерные FS
вот как раз в режиме когда ты "задаёшь iops-ы" fio - он как раз делает паузы
источник

ВН

Виталий На Заборе... in SDS и Кластерные FS
поэтому там неверно
источник

N

Nikolay Kulikov in SDS и Кластерные FS
Виталий На Заборе
т.е. если сам fio делает паузы то неверно. если скажем librbd делает, то это фиолетово и формула всё равно верна
В случае, если мы говорим про схд, а не локальные диски - там тоже не очень очевидная история, потому что контроллеров много и они могут обрабатывать трафик по разному
источник