В Linux, когда я загружаюсь, у меня автоматически 16 16 МБ RAM-дисков, однако я хотел бы создать один очень большой RAM-диск для тестирования некоторого программного обеспечения.
Я обнаружил, что могу настроить размер ram-дисков уже в системе с помощью параметра загрузки ядра, ramdisk_size
однако это делает все 16 ram-дисков (/ dev / ram0 - / dev / ram15) указанным размером. Поэтому, если я хочу создать виртуальный диск емкостью 1 ГБ, мне потребуется 16 ГБ памяти.
По сути, я хочу создать один ramdisk 10 ГБ, который будет / dev / ram0. Как бы я поступил так? Я предполагаю, что есть параметр загрузки ядра, но я просто не нашел его.
Сделать большой ram-диск после загрузки без возни с параметрами ядра. Используйте tmpfs, создайте файл, смонтируйте его через цикл и смонтируйте его через файловую систему:
Вероятно, небольшая потеря производительности проходит через несколько разных слоев ... но, по крайней мере, это работает.
источник
Другой вариант - использовать петлевые устройства (в отличие от функции монтирования loobpack, как упоминалось ранее):
Теперь / dev / loop - это легитимное блочное устройство, на которое ваше приложение будет работать, как физическое устройство или виртуальный диск, за исключением того, что оно имеет резервную копию файла. Вы можете смонтировать его где-нибудь или сделать так, чтобы приложение воздействовало на узел устройства, который реализует стандартный блок ioctls. Сохраняет системную память и полезен для тестовых случаев и т. Д.
(Вы можете даже fdisk myfs.img, создать на нем разделы и использовать --offset и --sizelimit с losttup для указания каждого / dev / loopX на определенные разделы в образе, поэтому loop0, loop1 становятся такими же, как sdc1, sdc2 и т. Д. )
источник
Вместо этого вы можете использовать файл цикла. Просто создайте файл цикла нужного вам размера (если вы хотите поместить его в ramdisk tmpfs, хорошо), а затем отформатируйте файл цикла и смонтируйте его.
источник
Объект ramdrive это скорость. Tmpfs это не диск. Петлевые устройства не являются дисками, но вы можете поместить образ диска в петлевое устройство. Оперативные диски "являются" дисками и очень быстрыми дисками. Попробуйте запустить:
а потом:
Вы поймете, что я имею в виду! Но hdparm иногда разрушает оперативную память. Итак, вы должны сделать это снова.
Иногда нет устройств / dev / ram. Чтобы сделать один:
но это не будет иметь никакого размера. Чтобы дать ему размер:
и он остановится, когда диск будет заполнен. Максимальный размер определяется ядром конфигурации PARM:
CONFIG_BLK_DEV_RAM_SIZE
.Затем просто отформатируйте его, т.е.
И смонтировать его:
Мой фаворит - отладка кода, хранящегося на ramdrive. Скорость компиляции кода на жестком диске не менее 10 раз. Таблицы базы данных, хранящиеся на ramdrive, также работают, но у вас должен быть сценарий, который периодически записывает данные на жесткий диск. У большинства администраторов нет смелости помещать данные на оперативные диски. И некоторые таблицы слишком велики.
источник
На Маяке 64 (Puupy Linux на основе Slackware) я сделал это;
Там у вас есть виртуальный диск, смонтированный как каталог,
/mnt/dvd
куда вы можете скопировать, вставить и сохранить все, как в директории hd, кроме ram. Не забудьте сохранить ваши файлы на HD перед выключением.источник