Сайт | Скачать | Видео | Wiki

Автор Тема: Теория и практика использования RAM-диска  (Прочитано 19320 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн bicyclist56

  • Ветеран
  • *****
  • Сообщений: 502
  • Репутация: +20/-1
  • Автор темы
  • Не дай мозгам засохнуть!
    • Мой блог
Воодушевленный http://www.vanemery.com/Linux/Ramdisk/ramdisk.html, решил попробовать.
Проверяем их наличие:
Код
sh-4.1# ls -l /dev/ram*
Видим десяток, ищем занятые:
Код
sh-4.1# dmesg | grep RAMDISK
Вроде, нет таковых.
В menu.lst добавляем параметр для kernel - создание RAM-диска 500 МБ:
Цитата
ramdisk_size=500000
Перезагрузка и проверка:
Код
sh-4.1# dmesg | grep RAMDISK
  #12 [0000100000 - 00002c0e88]      NEW RAMDISK ==> [0000100000 - 00002c0e88]
Ага, появился!
Для форматирования RAM-диска нужна mke2fs, таковой в Иванне не наблюдается. Сделал пакет, прилагаю к посту (версию выбрал постарее, самая новая отказалась работать). Устанавливаем и:
Код
sh-4.1# mke2fs -m 0 /dev/ram0
Параметр -m 0 задает резервирование 0 % для super user (без него кому-то выделяется 5%)
Создаем папку и монтируем в нее RAM-диск:
Код
sh-4.1# mkdir /mnt/ram0
sh-4.1# mount /dev/ram0 /mnt/ram0
Отмонтировать можно:
Код
sh-4.1# umount -v /mnt/ram0
Для автоматического создания и монтирования добавляем строки в /etc/rc.d/rc.local:
Код
/sbin/mke2fs -q -m 0 /dev/ram0
mount /dev/ram0 /mnt/ram0
Перезагрузка, проверка, все отлично, свободного места 493,1 МБ. Вопрос в том, для чего же можно использовать RAM-диск? Я еще не думал на эту тему...  ;D  
« Последнее редактирование: 27 Сентябрь 2012, 11:52:35 от bicyclist56 »
Неттоп Eglobal Intel Core i5 3317U 8 GB RAM 128 GB SSD + 120 GB SSD, Slax 9

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
    • PuppyRus-A
Можно еще проще, в том же rc.local:
Код
mkdir /mnt/rdisk && mount -t tmpfs -o size=100m tmpfs /mnt/rdisk
Отмонтировать (вместе со всей инфой): umount /mnt/rdisk

Про применение в голову приходит только изврат типа:
1. перекачал на р-диск фильм (или приложения) - смотрю в поезде , экономлю батарею ноута, наслаждпюсь скоростью работы
2. mksquashfs базы - тоже неплохая идея в ram делать

А применить бы хотелось. В компах под вин7 этой памяти....
« Последнее редактирование: 26 Сентябрь 2012, 16:01:10 от sfs »

Оффлайн bicyclist56

  • Ветеран
  • *****
  • Сообщений: 502
  • Репутация: +20/-1
  • Автор темы
  • Не дай мозгам засохнуть!
    • Мой блог
А я тем временем размышлял... Поэтому изменяю нумерацию :)
Достоинства RAM-диска:
1. Быстродействие.
2. Гарантированное уничтожение информации при выключении ПК. Или в любой момент при отмонтировании (правда, кое-что просто в оперативной памяти может остаться).
3. Можно задать использование только для чтения.

Возможные варианты использования:
3. Работа с секретными данными.
4. На серверах БД, при наличии большой памяти.
5. Вынос кэшей программ на RAM-диск с помощью симв.ссылок.
6. Тяжелые портабельные программы сразу на RAM-диск.

Из Вики:
Цитата
Linux реализует три вида ram-disk'ов:
    Специализированный архив в формате cpio для размещения модулей для начальной загрузки (initrd)
    Файловая система, размещающаяся в памяти tmpfs (используется чаще всего для хранения временных данных, сохранение которых не актуально между перезагрузками и к которым нужен быстрый доступ)
    Блочный ramdisk (модуль brd), позволяющий создавать блочные устройства (вида /dev/ram0).
У меня третий вид. Хорош тем, что туда же не валится более ничего, как в tmpfs.
« Последнее редактирование: 26 Сентябрь 2012, 16:28:48 от bicyclist56 »
Неттоп Eglobal Intel Core i5 3317U 8 GB RAM 128 GB SSD + 120 GB SSD, Slax 9

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
    • PuppyRus-A
В tmpfs ничего не валится (или я не понял Вашу мысль)
5. Все что не на сохраненке в пупи и так на tmpfs
6. С него и .sfs можно монтировать. В Ричи точно работает. Я про это даже отдельную тему замутил

Тоже не нашел супер применений.
Только для тех кто "с жиру бесится" от избытка памяти

Оффлайн bicyclist56

  • Ветеран
  • *****
  • Сообщений: 502
  • Репутация: +20/-1
  • Автор темы
  • Не дай мозгам засохнуть!
    • Мой блог
В tmpfs ничего не валится (или я не понял Вашу мысль)
Имел в виду, что заполнение tmpfs мы не контролируем. А в ramdisk только то, что пожелаем.
Хотя, действительно, не очень-то всё это нужно :)
P.S.
5. Кэши в сохраненке, однако, место занимают, если не выносить.
7. Для экономии ресурсов флешки (а также SSD) копировать побольше на RAM-диск, а запись на них делать только раз, при завершении работы.

И вот еще нашел полезные мысли:
Целесообразно размещать на RAM-диске программы, использующие интенсивные дисковые операции, создавая временные файлы, или игры, требующие долгой начальной загрузки или последующей подгрузки контента, например, при смене уровня.

Да и множество других программ могут выиграть от размещения в RAM, например, Adobe Photoshop и другие (видеомонтаж, конвертирование файлов), создающие большие временные файлы, средства моделирования, визуализации, программирования.

Kaк правило, серьезные программы позволяют устанавливать свои пути для размещения критичных по скорости доступа или объема файлов и надстраивают свой вариант виртуализации, поэтому наличие RAM-дисков для таких программ представляется целесообразным.
« Последнее редактирование: 26 Сентябрь 2012, 17:33:05 от bicyclist56 »
Неттоп Eglobal Intel Core i5 3317U 8 GB RAM 128 GB SSD + 120 GB SSD, Slax 9

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
    • PuppyRus-A
Контролируем. Та же папка как у Вас. Клади - удаляй пока не заполнится. Само ничего туда не сыплется
Сохраненку можно переделать в .sfs , предварительно удалив кэши и т.п. - тогда они автоматом создадутся  в tmpfs
Интересны были бы замеры скорости с указанием конфигурации ПК
« Последнее редактирование: 26 Сентябрь 2012, 17:37:34 от sfs »

Оффлайн bicyclist56

  • Ветеран
  • *****
  • Сообщений: 502
  • Репутация: +20/-1
  • Автор темы
  • Не дай мозгам засохнуть!
    • Мой блог
Интересны были бы замеры скорости с указанием конфигурации ПК
К сожалению, на моем ноуте основной тормоз - это процессор. Поэтому что-либо из упомянутого в приведенных выше "полезных мыслях" нет смысла использовать для измерений, 100% загрузка процессора явно не позволит делать выводы из результатов измерений :)
Пока что полностью отправил на RAM-диск firefox, в нем и пишу, кэш не копировал, естественно.
Неттоп Eglobal Intel Core i5 3317U 8 GB RAM 128 GB SSD + 120 GB SSD, Slax 9

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
    • PuppyRus-A
Экономнее будет не просто скопировать, а примонтировать .sfs, лежащий на ram-диске. Готовый скрипт для этого. В Иванне должен тоже работать :)
И как впечатления? По моим наблюдениям ffox после такого быстрее стартует, но работает с той же скоростью
« Последнее редактирование: 26 Сентябрь 2012, 18:02:30 от sfs »

Оффлайн Acid

  • Постоялец
  • ***
  • Сообщений: 106
  • Репутация: +4/-1
Вопрос: возможно ли применение RAMa для гостевых ОС под виртуальной машиной?
Или: правильно ли сравнивать виртуалку с тяжелыми портабельными программами,которые быстрее работают/запускаются из ОЗУ?
« Последнее редактирование: 26 Сентябрь 2012, 18:25:10 от Acid »
ASUS- P5KPL-AM SE, DDR-2 4Gb, CPU- intel DUAL-CORE E6500, GPU- AMD Radeon HD 7700

Оффлайн bicyclist56

  • Ветеран
  • *****
  • Сообщений: 502
  • Репутация: +20/-1
  • Автор темы
  • Не дай мозгам засохнуть!
    • Мой блог
В Иванне должен тоже работать :)
И как впечатления?
Положил в RAM-диск Eagle-6.2.0_528.sfs - 30 МБ, бросил его на скрипт, работает.
А firefox, по мере накопления кэша, открывает кэшированные страницы уже быстрее, понятно. Секунды засекать не хочется.
Еще мне понравилось оформление сообщений, как в frisbee :)
Что было замечено в обычном варианте, это когда кэш разрастался, то и поиск в кэше занимал все больше времени. Сразу после очистки и кэширования только одной страницы все происходило существенно быстрее.
« Последнее редактирование: 26 Сентябрь 2012, 18:37:20 от bicyclist56 »
Неттоп Eglobal Intel Core i5 3317U 8 GB RAM 128 GB SSD + 120 GB SSD, Slax 9

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
    • PuppyRus-A
Вопрос: возможно ли применение RAMa для гостевых ОС под виртуальной машиной?
Да. Для чего угодно. Это как раздел винта. Главное чтобы памяти хватило.
Для виртуалки - думаю без гигов 8 - делать нечего
Если у вас производительность упирается в проц - вряд ли ram поможет
бросил его на скрипт, работает.
Чтобы оказался в ram надо c  -r (не забыли ?) там хелп встроен.

Доработанный mnt_sfs для работы с ключами sfsmnt (можно юзать вместо load_sfs)
Повесить на расширение .sfs в любом ф. менеджере

Оффлайн bicyclist56

  • Ветеран
  • *****
  • Сообщений: 502
  • Репутация: +20/-1
  • Автор темы
  • Не дай мозгам засохнуть!
    • Мой блог
Заменил mnt_sfs, однако:
Код
sh-4.1# mnt_sfs /mnt/ram0/Eagle-6.2.0_528.sfs
** (gtkdialog:15663): ERROR **: gtkdialog: Error in line 43, near token '<variable>': syntax error
Неттоп Eglobal Intel Core i5 3317U 8 GB RAM 128 GB SSD + 120 GB SSD, Slax 9

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
    • PuppyRus-A
gtkdialog -v >= 0.7, а может и 0.81 (Как у меня. Дорабатывал по его примерам)
Возможно у Вас 0.7  - это gtkdialog4

« Последнее редактирование: 26 Сентябрь 2012, 19:31:56 от sfs »

Оффлайн bicyclist56

  • Ветеран
  • *****
  • Сообщений: 502
  • Репутация: +20/-1
  • Автор темы
  • Не дай мозгам засохнуть!
    • Мой блог
А при попытке:
Код
sh-4.1# sfsmnt -r /mnt/ram0/Eagle-6.2.0_528.sfs
комп вообще завис...
Гм, попробую еще разок.
Стоп, сначала разберусь с gtkdialog. Смотрю в /usr/sbin и вижу:
ссылку gtkdialog на gtkdialog3 (134,3 КБ), имеются также gtkdialog2 (82,6 КБ) и gtkdialog4 (192,0 КБ). Запас andy-voit на все случаи, видно  :D Предлагаемый gtkdialog - 209,1 КБ.
« Последнее редактирование: 26 Сентябрь 2012, 19:40:32 от bicyclist56 »
Неттоп Eglobal Intel Core i5 3317U 8 GB RAM 128 GB SSD + 120 GB SSD, Slax 9

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
    • PuppyRus-A
/mnt/ram0 - это у вас не ram диск? Лучше с винта
-r сам сделает р-диск.
Если что- смотрите Байт005 - там работает