Использовать SSD как RAM?

13

Как использовать дисковое пространство SSD в качестве ОЗУ для выполнения заданий с большим объемом памяти на Raspberry Pi? Это то же самое в Linux, что и создание ramdisk в соответствии с этими вопросами и ответами ?

719016
источник
4
Краткий ответ: это невозможно! Вы можете использовать его как диск подкачки или хранить там временные файлы, но вы не можете увеличить объем ОЗУ с помощью накопителя. Это просто невозможно.
Петр Кула
3
Попробуйте использовать GParted для форматирования вашего SSD с linux-swapразделом, затем запустите sudo swapon /dev/sda1(или какой-то другой раздел подкачки). Ramdisk использует вашу RAM в качестве хранилища, а пространство подкачки в основном наоборот - используйте хранилище как RAM.
JamesTheAwesomeDude

Ответы:

8

Я полагаю, вы имеете в виду SD вместо SSD? Создание раздела подкачки на SD-карте должно работать как некий ОЗУ для накопителя.

Если вы имеете в виду SSD, то нет никакого способа подключить SSD-накопитель к Pi. При подключении по USB большого увеличения не будет, даже обычный жесткий диск, подключенный извне, не сможет работать на полной скорости.

Райан Уолмсли
источник
7

Это невозможно.

Память для Raspberry Pi зафиксирована на плате, и нет интерфейса для ее расширения или замены.

Я думаю, что путаница связана с тем, что SSD (Solid State Disk) использует чипы памяти для хранения данных. Но на этом сходство заканчивается. Микросхемы памяти на SSD сильно отличаются от обычной оперативной памяти. Невозможно заменить одно на другое.

SSD имеет интерфейс диска SATA. ОЗУ имеет интерфейс шины памяти. Они настолько разные, что лучшая аналогия, которую я могу предложить, - это сравнить газовую духовку с микроволновой печью.

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

Микросхемы SSD являются флэш-памятью и обладают энергонезависимой способностью хранения, подобно USB-накопителям. Это означает, что они могут сохранять свои данные даже без питания. Им также нужен специальный чип контроллера для общения с ними. Этот чип подключен к интерфейсу диска SATA и следует протоколу SATA. По моей аналогии, SSD - это газовая духовка, а шина SATA - это подача газа в дом.

Типичные чипы оперативной памяти известны как DRAM, то есть динамическая память (также известная как DDR SDRAM и т. Д.). Они хранят данные в течение очень короткого времени, поэтому необходимо отключить их (отключить эти микросхемы от остальных цепей), чтобы обновить свои сохраненные данные. Это происходит несколько сотен или тысяч раз в секунду, и это прозрачно для пользователя. Если питание отключается, это обновление прекращается, и их данные теряются навсегда. Микросхемы динамической памяти следуют совершенно другому протоколу, чем микросхемы флэш-памяти, и они подключаются к контроллеру динамической памяти, который, в свою очередь, подключается к очень высокоскоростной шине памяти. Эта шина памяти идет прямо в сердце чипа процессора. По моей аналогии, Dynamic RAM - это микроволновая печь, а высокоскоростная шина памяти - это электросеть.

Процессор Rapsberry Pi имеет специальное соединение для ОЗУ, и только динамическое ОЗУ не может подключиться к нему. Соединения SATA и USB хранятся отдельно.

Поэтому, хотя они оба выполняют одну и ту же работу (SSD и RAM хранят код и данные, газовые плиты и микроволновые печи готовят еду и разогревают еду), они выполняют эту работу совершенно разными и несовместимыми способами. Одно не может заменить другого.

Наконец, RAM-диск - это уловка операционной системы, которая делает вид, что часть доступной RAM-памяти фактически является диском для хранения. Это уменьшает доступную оперативную память, как очень правильно указывает Леник в своем ответе.

Василис Папаниколау
источник
1
А когда Windows (Ready Boost) позволяет использовать флэш-диски в качестве дополнительной оперативной памяти, это может сработать? Или это все равно, что пытаться добавить SWAP, который не принесет изменений в производительности?
Рифмы
ReadyBoost в Windows не работает как RAM, см. Википедию: en.wikipedia.org/wiki/ReadyBoost . Итак, ReadyBoost - это решение для кэширования диска, позволяющее ускорить работу медленных дисков. Обычно это включает в себя копирование данных с вращающихся дисков на флэш-диски, чтобы сократить время доступа к данным.
Василис Папаниколау
3

Добавление свопа в Raspberry Pi

Вы можете использовать файл подкачки или раздел подкачки. Если вы решите использовать раздел подкачки, обязательно внимательно прочитайте, так как вы не хотите испортить какие-либо важные данные.

Создание файла подкачки

  • dd if=/dev/zero of=/SWAPFILE bs=1024 count=524288
    • Это создаст 512 МБ пустой файл.
    • Измените количество = на ваш предпочтительный размер.
  • chown root:root /SWAPFILE
  • chmod 0600 /SWAPFILE
  • mkswap /SWAPFILE
  • swapon /SWAPFILE

Создание раздела подкачки

  • dd if=/dev/zero of=/dev/sdXN bs=1024
    • Это заполнит весь раздел / dev / sdXN
  • mkswap /dev/sdXN
  • swapon /dev/sdXN

Постоянный при загрузке (добавьте в / etc / fstab)

  • vim /etc/fstab
  • Добавьте либо:
    • / SWAPFILE swap swap default по умолчанию 0 0
    • / dev / sdXN swap swap default по умолчанию 0 0

Проверьте, активен ли он

  • free -m
earthmeLon
источник
1
Несмотря на то, что твердотельные накопители работают быстро и могут быть полезны для подкачки, имейте в виду, что данные могут быть записаны на них только ограниченное количество раз.
earthmeLon
Не забывайте, что вы ограничены интерфейсом USB2, поэтому скорость SSD будет ниже 10% от его собственной скорости. Я действительно не думаю, что вам нужно беспокоиться о случайном ношении вспышки.
Джон Ла Рой
1

RAM-диск полностью противоположен тому, что вы хотите сделать. он создает диск в ОЗУ, когда вам нужна дополнительная скорость, и вам нет дела до памяти.

используя SSD в качестве RAM ... не знаю, может быть, создайте раздел подкачки на SSD и дайте ему поменяться там.

Lenik
источник