Комментарии 104
>Как вариант, сами NVMe имеют быстрый кэш в 32ГБ, а по факту туда SSD пихнули, типа и так сойдет.
Не хочу портить вашу стройную теорию, но NVMe - это спецификация, как SCSI и SATA. Поэтому никакой SSD туда не пихали, они все и так SSD и Flash память там одного типа независимо от конроллера и поддерживаемой спецификации.
Если нужно совсем без SLC, то это Intel Optane.
Поэтому SLC-кеш изначально объемом в весь диск, по мере записи SLC-кеш уменьшается до некоего уровня.
Поэтому пока первый раз такой диск полностью не запишешь, он будет более высокие скоростные характеристики показывать и выше надёжность.
Зачем это вообще делать, если производители просто добавляют побольше резервного пространства скрытого и именно за счет него получают нужный уровень DWPD. Порой позволяя юзеру менять этот резерв самостоятельно. Упомянутый в статье P4610 это обычный TLC диск с большим резервом, от чего у него такие странные паспортные объемы.
1. SLC работает на запись быстрее MLC/TLC/QLC;
2. У SLC меньше износ.
А статья вообще не про это:
1. самое главное, тут речь о домашнем QLC диске, где без SLC кэша просто невозможно, ибо флэш чертовски медленный
2. идея с переменных кэшем здесь в возможности балансирования размера кэша и числа резервных ячеек. Чем больше занят диск, тем больше нагрузка на флэш оставшийся. Логично пожертвовать кэшем в этих условиях. Это не про скорость и не про свободное пространство.
Поэтому непонятно, зачем это нужно диску корпоративного уровня, у которого зарезервирован приличный кусок флэша и так, а контроллер мощный, чтобы держать постоянную скорость записи без всяких кэшей. p4610 1.6ТБ из статьи скорее всего имеет в резерве 400ГБ флэша.
Проверьте: запишите последовательно всю доступную ёмкость (2 раза) и посмотрите на график скорости записи.
Что касается спеков, Intel как ответственная компания, если бы SLC и использовался, конечно бы написала не пиковую скорость, а устоявшуюся.
Означает ли это отсутствие кешей?
Да, потому что при заполнении кэша скорость падает. Это базовый закон информатики. В домашнем сегменте тоже кстати есть образец диска с устойчивой скоростью записи — 970 pro. Именно благодаря отсутствию SLC кэша.
Что касается спеков, Intel как ответственная компания, если бы SLC и использовался, конечно бы написала не пиковую скорость, а устоявшуюся.
Опять же, кому он такой сдался? Если у меня база данных миллион транзакций в секунду гоняет и внезапно эта цифра падает до 500тыс, то мне как-то до пофиг будет, что интел заявил скорость именно 500тыс. Мне от диска стабильная скорость нужна, а не гадать, в какой момент у него там кэш кончится.
Более того, сейчас начинается переход на SSD диски, в которых даже резервной области больше нет. Так называемые ZNS диски. Все потому, что на этом рынке людям не охота платить за резервную область, а заодно страдать от сборки мусора, которая непредсказуемо влияет на скорость диска. Поэтому в ZNS ни резерва, ни сборки мусора, ни тем более кэшей каких-то.
Не понимаю требования: «По паспорту 500 тыс. IOPS и это плохо, что некоторое время диск работает в 1 млн. IOPS, хочу чтоб всегда работал в 500 тыс. IOPS».
По ZNS несколько иное написано, что неиспользуемые блоки есть, просто они все равно видны. Это не тоже самое, что полное отсутствие неиспользуемых блоков. Да и как себя файловая система должна вести, когда часть блоков из строя выйдет? Сама собой уменьшиться? Занулять всё, что в такие блоки запишут?
когда произойдет переход на паспортные 500 тыс.
Не увидят. Они увидят переменную скорость и выкинут этот диск на помойку. При реальной нагрузке отсечка просадки скорости будет происходить в случайные моменты времени, потому что ссд это черный ящик. По той же причине отказываются от сборки мусора в ссд — это непредсказуемый процесс.
Не понимаю требования: «По паспорту 500 тыс. IOPS и это плохо, что некоторое время диск работает в 1 млн. IOPS, хочу чтоб всегда работал в 500 тыс. IOPS».
А я понимаю. Зачем мне диск, у которого непредсказуемая скорость? Не нужен он мне такой. Либо пусть 500тыс всегда выдает, либо я пойду к другому вендору. Предсказуемое поведение всегда лучше непредсказуемого, даже если первое чуть хуже (латентность или пропускная способность, не важно). Факт остается фактом, в корпоративном сегменте кэшей нет.
По ZNS несколько иное написано, что неиспользуемые блоки есть, просто они все равно видны. Это не тоже самое, что полное отсутствие неиспользуемых блоков. Да и как себя файловая система должна вести, когда часть блоков из строя выйдет? Сама собой уменьшиться? Занулять всё, что в такие блоки запишут?
Это зависит от производителя, сколько резерва ему надо. В предельном случае, вообще нисколько. У ZNS как правило не будет файловой системы. Можно лишь придумать костыли для эмуляции, но это нужно лишь для легаси. Да, часть блоков выйдет из строя — вся зона будет помечена мертвой. Как с этим поступать дело приложения. Диск минимум задач на себя берет и более не является черным ящиком, который хер знает что внутри творит.
Я здесь вижу все-таки другую историю: один физический SSD делится на несколько логических и админ может сам выбирать уровень резервирования, там где записи много будет — оставляет резерв побольше (просто делая раздел поменьше), а там где записи будет мало, выбирает резерв поменьше.
А сейчас резерв выбирают производители и не всегда это удобно.
Ну может я и не прав, конечно.
Идея здесь в другом. У нас есть куча приложений, которым нафиг не нужная файловая система. Базы данных в основном, вроде rockdb или ceph (он уже работает с дисками без файловой системы). Они хранят sstable на диске, которые не меняются после записи. Есть compaction операция, которая склеивает несколько sstable в одну, а старые удаляет. Это идеально ложится на append-only семантику ZNS дисков. А при compaction старые зоны просто очищаются полностью, сбрасывают указатель в начало зоны и готовы к работе дальше.
Очевидно, что навернуть сверху этого обычную файловую систему так просто не получится. Есть попытки какие-то, но это очевидные костыли. Уже есть примитивная файловая система, которая каждую зону предоставляет как файл, в который можно писать в конец только. Опять же, костыли и легаси. Нормальные приложения будут писать конкретно под ZNS диски, чтобы они работали с зонами напрямую.
Это технология Силикона контроллера. Корректнее диск пишется как SLC. По биту на ячейку. По мере заполнения ячейки записываются добавочно и становятся MLC.
В одном и том же гипервизоре на разных гостевых ОС было не отличить, SSD внутри сервера или NVMe.
При этом если не брать в расчёт 45Гб файл — разница в 4-10 раз в пользу NVMe. Да и суть NVMe не только в бОльшем кол-ве IO, но в более низких задержках, которые вы не отразили в сводных таблицах. А голые IO без задержек — не показатель. Как и отсутствие профиля нагрузки.
Да и что за тест в 10/45Гб??? Берите сотнями или тысячами гигов, с записью, перезаписью и тд, тогда будет показательно, а иначе — только воздух портить, что NVMe ни лучше, чем SSD
Первое, что мы узнали, — что NVMe не объединяется в RAID нормальными способами, то есть в итоге надёжных дисков ждать не стоит.
Пдождите, есть же аппаратные контроллеры, где-то рядом упоминался тот же MegaRAID 9460-8i — до 24 устройств NVMe
В этом случае мы будем ограничены пропускной способностью PCI-E шины в которую воткнут RAID контроллер. Хотелось бы задействовать пропускную способность сразу нескольких шин.
Шина максимум 16х, накопители 4х. 4 накопителя уже отлично ползут на максималках.
Если речь о 4-х NVMe дисках, воткнутых в PCe 16x, то всё же вам RAID-контролер не нужен, каждый накопитель будет использовать 4 линии монопольно, RAID программный и просадка по IOPS может быть только по какой-то иной причине (недостаток ресурсов CPU, ошибка в ПО и т.д.).
2. Еще раньше этого контроллер задохнется
Судя по спеке, это обычный SAS контроллер, которому присобачил сердес для pcie. Дай бог оно миллион иопсов вытянет. Мы и на SATA SSD запросто упирались в пределы даже тупого HBA.
SSD (не важно даже, SATA, SAS, NVMe) диски и аппаратный рейд вещи несовместимые, только софтовый с минимальным вмешательством ОС. Скорости огромные. Собственно, аппаратный рейд сам по себе скорее мертв вне зависимости от интерфейса.
есть нормальные тесты: тесты, запускаемые с хоста
Мы сосредоточились на тестах, запускаемых с виртуальных машин, т. к. наша основная цель предоставить высокую производительность нашим клиентам. Как показывает практика, гипервизор вносит свою роль в производительность дисковой системы под виртуальной машиной.
рассказали опять сказку про то какие плохие High-CPU, потому что вы их охладить не смогли
Тут дело не в том, что смогли или не смогли. В настоящее время не существует решений корпоративного класса для HI-CPU, а десктопное железо мы не используем.
Сами по себе enterprise диски бывают оптимизированные для по крайней мере 3 профилей нагрузки — Read, Write и Mixed use, чаще всего для первого и последнего. Какие использовали вы? Правильно ли я понял, что Intel?
Кстати, у них в D5 серии честно написано (ноли не забыл):
Random Read (100% Span) — 800000 IOPS
Random Write (100% Span)- 6100 IOPS
А вот у D7 уже лучше:
Random Read (100% Span) — 700000 IOPS
Random Write (100% Span) — 170000 IOPS
По сути, D5 это read optimized, а D7 — mixed use.
Как настраивали диски для виртуалок? Пробрасывали само устройство? Enterprise диски часто умеют в namespaces и фактически могут «аппаратно виртуализироваться», прикидываясь независимыми устройствами (то самое /dev/nvme1n0, где 0 — на самом деле namespace). Или LVM?
Может вы вообще просто виртуальный диск файлом создали на NVME SSD, вы к сожалению не рассказываете, а это прям совсем разные кейсы.
Что касается процессоров, то в общем-то большинство хостеров (по крайней мере иностранных) не скрывает, что у них стоит десктопное железо в конфигурациях с высокой тактовой частотой. Тут скорее речь же про single thread performance, так?
В этом случае да, single thread в серверном железе уже давно отстает, но тут есть интересная альтернатива посередине — AMD Threadripper Pro. ECC, широкие внешние шины, PCIe4, более-менее вменяемый теплопакет, вкусная для серверного железа цена и скорость в single/multithread thread выше, чем у Xeon Gold 6244 и аналогов (сильно выше).
Хотя есть еще конечно Epyc 74F3 какой-нибудь, который не сильно медленнее в single core.
Ну, тогда ничего кроме софотовых проблем и не остается.
Возьмите нормальный Intel Optane, например SSD-накопитель Intel Optane DC серии P5800X и протестируйте
При этом из-под гостевой ОС видно производительность 3,6 вместо 4,5 в бусте.
То, что там не видно, не означает, что там нет буста. Бенчмарк какой-нибудь прогоните с выключенным и включённым бустом, например, 7-zip, и увидите разницу
Это хорошо при пиках на десктопе (но не в играх)
Почему вы так думаете? От повышения частоты хорошо всем, кто использует процессор, в т.ч. играм
но очень плохо для сервера под нагрузкой с несколькими клиентами
Почему?
В любимой игре вы наверняка захотите чтобы у вас была высокая производительность в течение нескольких часов непрерывно, а не только в моменты, когда у процессора включается Turbo Boost. Примерно тоже самое и у сервера - нужно чтобы у виртуальных машин была возможность в любой момент получить высокую долю CPU, а не только в моменты когда доступен Turbo Boost.
Вот например на картинке в последних шести столбиках указаны частоты процессоров Intel 2017 года (у всех современных аналогично) при нагрузка на 1, 2, 3, ..., 6 ядер.

Производитель исходит из того, что бюджет на тепловую мощность можно потратить весь на одно ядро, сильно повысив там напряжение и соответственно потолок частоты, а можно на два, повысив чуть ниже, и так далее. Базовая частота, которая Base на картинке, это такая, на которой при нагрузке на все ядра потребление будет такое, как указано в столбике TDP.
Примерно тоже самое и у сервера — нужно чтобы у виртуальных машин была возможность в любой момент получить высокую долю CPU
Вы про оверпровиженинг слышали? Можно конечно зарезервировать за виртуальными машинами весь CPU, хотя так никто не делает, потому что это дорого. Тогда просто берите по табличке частоты при нагрузке на все ядра
Про raid0 с nvme скажу вот что: 2 года назад собирал 6 дисков в рейд на одном pci-e слотет4 и 2 на мамке. Скорости чтения-записи около 20гб/сек. Собирал на мамке msi x399 creation. Сейчас под чиа стоят пара собранных в рейд0 дисков seagate firecuda 520. Скорость 10-11гб/сек, f2fs. Я предполагаю, что кто-то там у вас не посчитал pci-e линии). Ещё нужно форматировать правильно, и правильно указывать stripe size в mdadm, имхо по дефолту скорости рили выходят ниже, чем одного диска)
Первое, что мы узнали, — что NVMe не объединяется в RAID нормальными способами
Все прекрасно объединяется. Берете софтварный рейд типа mdraid и вперед.
Грубо говоря, когда мы используем RAID, мы его включаем в одну PCIe-шину и мы ограничены этой PCI Еxpress, и только несколько дисков можем распараллелить по разным шинам. Нужны контроллеры.
Что это за поток сознания? Какие шины? Шина одна, у нее есть число линий. Покуда этих линий достаточно, диски будут работать настолько параллельно, насколько могут. Проблемы начинаются с добавлением pcie свитчей и всяких других контроллеров. Nvme диски подключаются напрямую к процессору и только так достигают своих скоростей. Как раз такие никакие контроллеры не нужны, от них будет только хуже.
M2 чаще используют в десктопах
Серверный рынок сплошь на m2. Просто используют их как загрузочные диски.
Более того, в CrystalDiskMark этот параметр называется Queue, хотя очередью это можно назвать с некоторой натяжкой.
Это самое стандартное для них название. Вся суть nvme заключается в предоставлении диском кучи независимых очередей команд, в которые надо пихать как можно больше всего и ни о чем не думать. Как только ОС пытается умничать, то скорость падает.
То есть турбобуст не врубается на сервере почти никогда.
Чего? Турбобуст постоянно в работе. Более того, интел позволяет даже загружать в процессор профили для различных типов нагрузок начиная с cascade lake.
А по тестам, я думаю их точность соответствуют общему техническому уровню статьи. Проблема явно не в диске или его протоколе.
Не надо распространять путаницу со сравнением nvme и ssd. Первое это протокол (да еще и не привязанный к физическому интерфейсу). Второе это тип диска.
В личном кабинете многих провайдеров при заказе сервера есть выбор NVME либо SSD. Под NVME подразумевается NVME SSD. Мы в статье как раз и тестируем NVME SSD. Когда пользователь выбирает NVME диск, то цена почти всегда становится несколько больше. Согласитесь, что если пользователь платит больше, то он ожидает некоторого прироста производительности, за счет нового протокола. Мы в данной статье и пытаемся этот прирост оценить.
Серверный рынок сплошь на m2. Просто используют их как загрузочные диски.
Мы как хостинг провайдер, в первую очередь оцениваем возможность предоставления конечному клиенту.
Вся суть nvme заключается в предоставлении диском кучи независимых очередей команд, в которые надо пихать как можно больше всего и ни о чем не думать. Как только ОС пытается умничать, то скорость падает.
Тоже так думали, что разработчику конечного ПО «можно ни о чем не думать», чтобы получить преимущество от NVME, пока не посмотрели исходный код diskspd. Далеко не все ПО опирается на асинхронные вызовы.
В личном кабинете многих провайдеров при заказе сервера есть выбор NVME либо SSD. Под NVME подразумевается NVME SSD. Мы в статье как раз и тестируем NVME SSD. Когда пользователь выбирает NVME диск, то цена почти всегда становится несколько больше. Согласитесь, что если пользователь платит больше, то он ожидает некоторого прироста производительности, за счет нового протокола. Мы в данной статье и пытаемся этот прирост оценить.
К чему это все? Вы пишите техническую статью, так пользуйтесь правильными терминами. То, что личные кабинеты добавляют путаницы, не повод за ними повторять. Nvme SSD это такой же SSD как любой другой.
Тоже так думали, что разработчику конечного ПО «можно ни о чем не думать», чтобы получить преимущество от NVME, пока не посмотрели исходный код diskspd. Далеко не все ПО опирается на асинхронные вызовы.
Под «не думать» подразумевалось другое. Для nvme дисков всегда отключаются любые планировщики IO в ядре ОС. Они приводят только к существенному падению скорости. Nvme оптимизирован для того, что команды посылаются во множество потоков в произвольном порядке и так же в произвольном порядке возвращаются ответы. Все остальное это головная боль контроллера накопителя, который с этим намного лучше справится.
Тараканы плакали... и продолжали использовать RAID с гипервизорами... Зачем? Взяли бы ceph, набили его чем нашли, и горя бы не знали и zip можно купить хоть за углом...
А про nvme, у кого-то руки кривые. Есть reference конфигурации от вендоров, где сеф спокойно миллионы ипсов гоняет на 5 серверах. Понятно, что оверхеда дофига. На то она и распределенная файловая система.
Возвращать её через ErrorCode процесса неудачная идея. Например, если процесс завершится с ошибкой по какой-то другой причине, то код ошибки будет просто отображён в результате тестирования.
Формально говоря, такой штуки как ErrorCode — нет. Есть Exit Code, который может означать разное. Некоторые программы используют его для возврата кодов ошибок. Что касается данного случая — ну, если они изменили код diskspd (а вы выяснили, что они это сделали), то они могли и гарантировать нужное им использование Exit Code. Тут можно рассуждать о красоте архитектуры этого всего, но нельзя сделать однозначного вывода, что в коде есть баг.
NVMe = SSD, зачем почти все выделяют NVMe в какой-то особенно быстрый класс? Если это не Optane/3dxpoint, то выделяться там нечему.
Внутри вашей P4610 TLC ячейки скорей всего даже хуже чем в ваших же «просто SSD» (MLC скорей всего). И лишь благодаря контроллеру и лишь в большой глубине очереди можно увидеть прирост скорости. В 1 поток отличий от SATA SSD практически не будет, все упирается в скорость самих ячеек. Это примерно как SAS и SATA HDD — да, у SAS есть преимущества и в каких-то ситуациях они заметны будут, но в большинстве случаев ведь «под капотом» все тот же медленный HDD. Только радикальная смена основы диска позволяет полностью раскрыться новому интерфейсу.
А они еще и в PCIe x4 лезут с этими своими TLC/QLC… показывая невероятные тысячи мб/с… в тесте на объеме 1гб и пустом новом диске.
Soft RAID легко делается и нормально работает и под windows/linux и на m.2/u.2.
Другой вопрос что подключать диски нужно не как-попало, а смотреть разводку pcie линий на материнке. Может к x4 слоту подходить 2 или 1 линия всего и она может идти в CPU, а может в PCH. И запросто может получиться, что втыкают бездумно в соседние x4 слота, из которых один x4 идет в CPU, а второй x2 в PCH… и потом удивляются результатам странным.
Также, как верно заметили, Xeon'ов на 4.5ГГц полно, правда они все для однопроцессорных систем, что скорей всего не подходит продавцам VPS'ок, где нужно выжимать максимальное количество ядер с сервера.
Другое дело что далеко не везде их (xeon'ы, которые могут 4.5ггц и выше) используют на полную. Нередко на хостингах вижу процессоры работающие на базовых или даже ниже частотах. Но можно же их держать постоянно в режиме между turbo (без большой нагрузки) и all-core-turbo (под нагрузкой), не давая проваливаться до базовой или даже ниже.
зачем почти все выделяют NVMe в какой-то особенно быстрый класс?
Потому что оно так и есть? Все Nvme накопители на рынке используют pcie интерфейс. Они значительно быстрее sata и sas ssd. Это отдельный класс устройств со своими сложностями, кучей разных формфакторов, коннекторов. И рынок плавно переходит на этот новый класс. Большинство серверных нагрузок легко может нагрузить эти диски, чтобы эти скорости увидеть. Уж VDS то точно, где дисками потенциально сразу куча народу пользуется.
зачем почти все выделяют NVMe в какой-то особенно быстрый класс?
Здесь скорее "почему", чем "зачем". В первую очередь потому, что SSD уперлись в пропускную способность интерфейса/ов SATA/SAS и ограничение протокола обмена данными по SAS (сколько помню, в нем можно максимум 256 очередей организовать, а в протоколе NVMe 64k, при этом скорости работы с носителем информации хватает на то, чтобы обрабатывать больше, чем 256 полностью забитых очередей), как следствие, sustained throughput у SATA/SAS SSD уступает NVMe SSD в несколько раз (здесь, например, в пять тире двадцать) как по IOPs так и по мегабайтам в секунду. А некоторым клиентам нужно быстродействие, которое SSD уже не обеспечивают, т.е. есть спрос на хранилище на дисках NVMe но не SATA/SAS SSD, а где есть спрос, там появляется предложение.
Про подключение — хм, имхо хороший вопрос, но я так понял, что здесь тестировался диск в одном и том же слоте, и в одном тесте он мог выдать сотню тысяч IOPs, во втором и тысячи не выдал.
Мысль в том что важней что именно хранит информацию в диске, а протокол это уж скорей следствие. Если ячейки действительно шустрые, как optane например, диски на них ни у кого даже мысли не было делать на SATA т.к. он в 1 поток 4к около 400мб/с может, что почти потолок для SATA3. Так зачем же делают PCIe x4 NVMe SSD на всяких QLC ячейках, которые раз в 10 медленней… вопрос риторический.
Так зачем же делают PCIe x4 NVMe SSD на всяких QLC ячейках, которые раз в 10 медленней… вопрос риторический.
QLC все равно прекрасно параллелятся. У них очень плохо все в запись, чтение работает хорошо и для холодных данных они отлично подходят, а тот же оптейн перед ними поставить как кэш записи. Но идея вообще в том, чтобы унифицировать стек. Индустрия отказывается от SAS и SATA. Люди переходят на nvme протокол. И гонять его собираются не только по pcie, но и по TCP и всяким другим сетевым фабрикам. И действительно не особо уже важно, чего там за этим nvme протоколом. Оптейн или SmartNic какой-нить, за которым массив дисков.
Есть надежда, что такими темпами мы наконец сможем выкинуть iscsi и все гонять по nvme.
Так то понятно что NVMe интерфейс сильно лучше SATA. Но спасибо что HDD еще не додумались перевести на NVMe.
Т.е. обещают просто NVMe хостинг, люди подсознательно расчитывают на второе, а получают первое.
С чего вдруг? Никто в своем уме не рассчитывает, что ему хостинг оптейн даст. Даже в специфичных задач его по большей части как кэш используют. Люди, когда видят nvme, ожидают скоростей, который дают nvme pcie NAND диски, а это миллионы ипосов и гигабайты в секунду. Нормальный хостер еще конкретно скажет, сколько иопсов он готов предоставить. Да, для маркетологов nvme превратилось в обозначение конкретной категории продуктов, хотя это всего лишь протокол. Клиентам так наверняка проще, но в технической статье на хабре этому точно не место.
Хотя на самом деле скорость процессора куда важней диска. И тут все еще печальней. На разных хостингах продают какие-то условные ядра, но различия в скорости могут быть в разы. Та же история что и с NVMe — называют просто «cpu core», а что там за core под капотом… даже у поддержки не всегда удается узнать заранее, не потратив время на проверку лично. И получается часто, что это «ядро» еле шевелится на 2ггц, когда хотелось бы (и может быть) раза в 2-2.5 шустрей. Но ядром считается и то и то.
Ну да, выдумывают какие-то Hi-CPU названия, а можно же просто написать модель процессора или хотяб частоты указывать везде и у hi- и у не-hi-.
С процами тоже самое. Облачные провайдеры вроде в доках все говорят, какие где процы и сколько процентов времени процессора ты получаешь реально. Но это все равно непросто. У них типов инстансов туча, плюс они периодически старое выкидывают и меняют на более новые модели. Азур вон придумал универсальную метрику ACU, чтобы хотя бы относительные скорости были понятнее. Ну и всегда можно потестить самому.
Latency у NVMe/PCIe на порядок примерно лучше, чем у SAS. Поэтому я готов за него доплачивать. Потому что эффект виден в реальной работе. На результаты Diskspd/CrystalDiskMark вообще фиолетово.
А Throughput вообще интересует примерно никого и никогда.
отому что турбобуст, вообще-то, врубается специфически: процессор старается давать повышенную частоту при наличии питания и запаса по температуре. Это хорошо при пиках на десктопе (но не в играх), но очень плохо для сервера под нагрузкой с несколькими клиентами. То есть турбобуст не врубается на сервере почти никогда.
Спорное утверждение.
Например, у HP ProLiant есть настройка Power/Performance, при значении Maximum Performance его процессоры будут в турбе практически всегда (если не перегреются, чего добиться очень сложно).
У SuperMicro есть схожие настройки, но они могут работать кривовато)
Надо поиграться, есть тут под рукой щас суепрмикро.
Посмотрите, вдруг что-то новое и интересное найдете.
Я находил пост Вэндела, где он с этим всем для Линуса разбирался. Резюме там — на новых линукса и эпиках проблемы больше нет, а ZFS банально не готова к таким скоростям и пока можно даже не мечтать. На mdraid все бегает нормально.
Ещё как объединяются. У меня на лаптопе они объединены без проблем.
RAID сейчас многие собирают софтово. В винде же тоже можно, вот бы и собрали, раз так нужно. С софтовым RAID может быть печально если ОС умрет, но при обновлении ОС все равно все виртуалки смигрируются, так что не так опасно, а вот если аппаратный контроллер помрет, то веселья будет заметно больше. Количество багов к аппаратным контроллерам тоже не внушает уверенности в сохранности данных.
Здесь выше писали, что при записи в одну очередь разницу между nvme/sas/sata увидеть сложно т.к. тормозом является непосредственно запись в SSD, а не интерфейс. Гигабайты в секунду получаются при записи большой очередью т.к. SSD будут писать в разные ячейки одновременно и на этом можно прокачать IOPS и полосу пропускания. При последовательной записи и быстрые и медленные SSD выдадут на блоках по 4K около 50 тыс. IOPS.
При этом многие практически приложения были сильно оптимизированы во времена HDD чтобы писать последовательно в один поток (например СУБД) и у меня сайты на Drupal сохраняют материалы на SSD всего-лишь в два раза быстрее HDD (а никак не в сотни раз быстрее формальной разницы в IOPS). Поэтому синтетика может сильно завышать скорость по сравнению с реальными приложениями. На тех же СУБД, если вся база в ОЗУ влазит, не надо удивляться, что при чтении IOPS к дискам нет и использование nvme не дает прироста производительности.
Латентность на скриншотах в посте в десятки миллисекунд типична для HDD, а не SSD. Латентность SSD обычно в 50 раз меньше латентности HDD. C этим определенно надо разбираться, как и с провалом на 45ГБ.
Не написано, выключался ли WriteCache в хостовой Windows и в SATA RAID. Думаю не надо объяснять как кеш на запись может на результаты повлиять.
Тестирование Ceph можно, например, здесь посмотреть: www.proxmox.com/en/downloads/item/proxmox-ve-ceph-benchmark-2020-09
Примечательно в результатах там то, что при многопоточной записи производительность сильно падает, что видимо объясняется частым переключением контекстов (т.е. большое количество виртуалок на хосте — плохо), а производительность чтения совершенно неадекватна т.к. в реальности чтение происходит из ОЗУ хостовой ОС, а не с дисков.
Ну и да, бенчмаркать дисковую систему очень нетривиально т.к. много что может сильно влиять на производительность и может случиться, что измеряешь не производительность nvme, а производительность своей программно-аппаратной конфигурации, которая в руках другого человека с другой конфигурацией железа, но теми же дисками не воспроизведется.
Экспериментировал тут с новым и старым серверами и дисками, случайно обратил внимание на один диск, который дискмарк измерял как R 3500 W 3500 (грубо), а diskspd 3500/1800
Подсмотрел, с какими параметрами запускает diskspd дискмарк, он добавляет параметр -Z1024K
С ним скорость чтения и записи становятся одинаковыми (по тесту)
Кто-нибудь может пояснить про параметр -Z1024K у diskspd, правильно его использовать или нет? Что означает тот факт, что все остальные диски что у меня есть показывают одинаковые результаты с -Z1024K и без него, а один старый - см. выше?
Все врут: эпопея с NVMe-серверами и Hi-CPU