Может ли SSD рейд быть быстрее ramdisk?

9

Таким образом, типичный ssd будет иметь скорость чтения 250 - 500 МБ / с. И баран будет примерно в 10 раз больше.

Мой вопрос: может ли 4 SSD с raid-0 быть быстрее, чем один блок оперативной памяти по какой-то причине?

Я либо собираюсь пойти с большим количеством оперативной памяти и RAM-диска, либо 4 SSD с рейдом-0. Что быстрее?

Корай Тугай
источник

Ответы:

12

Таким образом, типичный ssd будет иметь скорость чтения 250 - 500 МБ / с. И баран будет примерно в 10 раз больше.

Какую оперативную память вы имеете в виду? Конечно, это не то, что в последнее время широко используется в ПК.

DDR3 SDRAM может тривиально дать вам скорость передачи около 10 ГБ / с (для этого вам понадобится DDR3-1333) и в настоящее время составляет около 17 ГБ / с для DDR3-2133.

Допустим, вы выделяете четыре твердотельных накопителя, способных выдавать 500 МБ / с, и вся система способна справиться с этим (отсутствие конфликта шин, система все еще связана с вводом / выводом и т. Д.). Это дает теоретическую максимальную пропускную способность 2 ГБ / с. 4xSSD проигрывает почти в 10 раз.

DDR3 SDRAM имеет задержку в области 10 нс. Хороший SSD может дать вам 100 тыс. IOPS, вершин, что означает задержку в 10 000 нс. (Например, Intel 530 определяет 41 тыс. Операций ввода-вывода в секунду для случайных 4 тыс. Операций чтения, что дает задержку около 25 000 нс.)

Избавьтесь от четырех быстрых SSD и проигнорируйте все служебные данные, и вы можете получить 400 тыс. Операций ввода-вывода в секунду или задержку 2500 нс. 4xSSD проигрывает в 250 раз.

Данные с SSD должны идти куда-то, и это «где-то» будет RAM. Процессор может захватить его оттуда, но он не взаимодействует напрямую с SSD больше, чем напрямую с жестким диском с вращающимся диском.

Если мы предполагаем, что вы не страдаете от конфликта шины на SSD, имеет смысл предположить то же самое для оперативной памяти. Что приводит к заключению, что по любой из этих метрик SSD ужасно медленен по сравнению с DDR3 SDRAM.

ОЗУ имеет и другие недостатки. Даже по сравнению с твердотельными накопителями это очень дорого на гигабайт, и ему нужно постоянное питание для сохранения своего содержимого. Кроме того, RAM-диск не функционирует так же, как RAM, так как это программная конструкция в операционной системе. Вы по-прежнему должны получать большую часть выигрыша в производительности ОЗУ, но вы теряете тот же объем ОЗУ, что может привести к тому, что системе придется чаще менять местами (что является смертельным приговором за производительность), и, скорее всего, этого не произойдет. дать такую ​​же производительность, как необработанная RAM.

CVn
источник
рамдиск именно тогда ..
Корай Тугай
1
@KorayTugay Если вам нужна максимальная производительность, вам следует использовать RAM-диск, но имейте в виду, что RAM-диск не работает так же, как RAM, и имеет свой собственный набор недостатков, немаловажным из которых является цена , (Кроме того, хотя я ценю согласие, я призываю вас подождать день или около того, прежде чем принимать ответ, если кто-то другой дает еще лучший ответ.)
CVn
@KorayTugay: Вообще говоря, ответ «Нужен ли мне RAMDisk?» почти всегда "Нет. Если бы вам это действительно нужно, вы бы знали достаточно, чтобы вам не пришлось спрашивать". Что вы делаете, что заставляет вас думать, что вам это нужно?
afrazier
Разработка / тестирование @afrazier с огромной базой данных, и я обращаюсь к ней много раз, и из нее извлекается много данных. Я буду держать БД в ОЗУ. Я делаю это по 8- 10 часов в день, а ожидание в течение 4- 5 секунд кажется слишком долгим через некоторое время. Мне нужно быстрее попасть в БД.
Корай Тугай
5
Любая компетентная СУБД будет хранить как можно больше БД в оперативной памяти. Если ваша БД достаточно мала, чтобы поместиться в RAM-диск, она достаточно мала, чтобы просто поместиться в RAM. Правильная настройка вашей СУБД с помощью SSD даст вам требуемую производительность - для локальной разработки вы даже можете воспользоваться такими вещами, как кэширование с обратной записью и меньше беспокоиться о ACID. RAMdisk борется с системой.
afrazier
4

Реальная причина ответа «нет» заключается не только в сравнении различий между ними, но и в том, что ОС в конечном итоге кеширует данные, считанные с SSD. Это будет кешировать это в вашей оперативной памяти . Таким образом, чтение блока из SSD означает блок-запись в RAM. Всегда.

Вот почему RAM-диски работают быстрее даже в очень специальных аппаратных комбинациях (например, очень быстрый SSD сочетался с очень медленным RAM).

Петер - Восстановить Монику
источник
1
Это на самом деле лучший ответ.
ChrisInEdmonton
sudo zfs set primarycache=none tankТам идет ваш кэш на основе оперативной памяти. (Если, конечно, вы используете ZFS.)
CVn
@ MichaelKjörling Это верно, и даже в конструкциях, отличных от zfs, есть возможность отключить кэш чтения. Но даже в этом случае, если вы сделаете вызов $ read () $, это будет фактически копия с SSD в RAM. Вы не можете избежать этого, за исключением случаев, когда вы как-то считываете данные непосредственно в кэш ЦП (что также означает, что вы как-то избегаете DMA), в процессорах AMD (и, возможно, в intels) есть встроенный менеджер памяти, я думаю, что они слегка модифицированы. мог как-то это сделать. Но даже в этом случае потребуется модифицировать процессор.
Петер - Восстановить Монику
3

Чтобы ответить на ваш актуальный вопрос: Нет. RAM имеет на порядок большую пропускную способность и на порядок меньшую задержку. Это даже не близко.

Чтобы ответить на вопрос, который вы не задаете: то, что вы планируете делать, является плохой идеей, если только у вас нет особого варианта использования, который требует такой полосы пропускания. Если вам действительно нужна такая скорость, приобретение SSD на основе PCIe (например, ioDrive или Intel 910 будет гораздо быстрее, чем пакет SATA SSD в RAID-0).

Любой текущий SSD будет достаточно быстрым для рабочих нагрузок потребителей и энтузиастов, что вы будете узким местом.

afrazier
источник
На самом деле задержка DDR3 не на порядок ниже, чем у SSD. Это на три-четыре порядка ниже. Смотрите мой ответ для некоторых фактических чисел. (Разница в полосе пропускания, безусловно, в приблизительном значении.)
CVn
Задержка не важна, потому что IO происходит в блоках. По крайней мере, в 4K блоков. Пропускная способность важна.
Петер - Восстановить Монику
@PeterHorvath: Задержка все еще имеет большое значение для твердотельных накопителей. Посмотрите на все исследования и тесты на непротиворечивость и проблемы с заиканием, которые были у ранних SSD. И, как отметил Майкл Кьёрлинг, задержка ОЗУ на несколько порядков ниже, чем у SSD. Задержка на Lx-кэшах все еще значительно ниже, а задержка ЦП еще ниже. И все это имеет значение для производительности.
afrazier
1

Оперативная память всегда будет быстрее, чем любая периферийная шинная система (например, SATA).

Но когда вы имеете дело с RAM-диском, вы имеете дело не только с RAM. Существует также набор программного обеспечения (файловая система и драйверы устройств), позволяющие «преобразовать» необработанную оперативную память во что-то, что ОС увидит в качестве дискового хранилища.

Насколько быстрым будет RAM-диск, зависит от качества этого программного обеспечения.

Сказав, что: обычно это все равно должно быть в несколько раз быстрее, чем самое быстрое решение для хранения, которое вы можете подключить к материнской плате.

Могут быть некоторые угловые случаи, когда конкретные модели использования будут делать разницу меньше или почти нулевой, но без более подробной информации о том, что вы собираетесь делать с такой системой, невозможно сказать, применимо ли это к вашей ситуации.

PS Имейте ввиду, что RAM-диск будет нестабильным. После загрузки машины вам сначала нужно будет загрузить данные. При выключении машины вам придется сохранить контент (если он вам понадобится для следующего запуска). В случае сбоя системы вы теряете RAM-диск с необходимостью что-либо сохранить.
Это то, что вам нужно учитывать, особенно если вы ожидаете частых перезагрузок. Сохранение / перезагрузка содержимого RAM-диска может оказаться менее тривиальным.

Tonny
источник
Я буду держать свою базу данных в оперативной памяти.
Корай Тугай